Ich habe ein Ember-Projekt (v2.12.0), wo ich ein bestimmtes Modell anhand seines Slugs finden möchte. Diese Schnecken sollen einzigartig sein.EmberJS: Wirf 404 vom Routenmodell-Hook, wenn die Speicherabfrage zu einer leeren Sammlung führt
Wenn ich nach einem Datensatz mit Ember.store.query()
abfrage, wird das zurückgegebene Versprechen jedoch immer zu einer Auflistung von der Natur von query()
und der JSON-API-Spezifikation aufgelöst.
Wenn der Server einen Datensatz mit diesem bestimmten Slug nicht findet, lautet die Antwort weiterhin 200 OK
mit einer leeren Auflistung für my-model[]
als seine Nutzlast.
Meine Frage ist:
Wie kann ich model()
Haken in meine glut Route besten behaupten, dass die Sammlung genau 1 Element enthält, oder abbrechen und Übergang zu einer sonst 404
Route/Seite?
Dies ist der Code, den ich habe bisher:
import Ember from 'ember';
export default Ember.Route.extend({
model(params) {
return this.store.query('my-model', {
filter: {
slug: params.myModelSlug
}
}).then((modelCollection) => {
// Code below fails when modelCollection is empty...
return modelCollection.get('firstObject');
if (modelCollection.get('length') === 0) {
// Throw new Ember Error 404?
}
});
}
});