Das Problem ist, dass Ember die URL basierend auf den Modellen für jede Route aufbaut. Wenn es versucht, die Route unterhalb der aktiven/alle Route aufzubauen, wird Ihr Array von Elementen verwendet (das kein Feld auf dem als Filter bezeichneten Feld hat), sodass nicht feststellt Modell. Eine gute Praxis besteht darin, dass Ihr Schnecken (der Wert im Pfad) mit der Eigenschaft des Modells übereinstimmt.
Wenn es nicht übereinstimmt, können Sie die Serialize -Methode auf der Route überschreiben, sodass Ember weiß, wie Sie Ihr Modell für die URL serialisieren.
App.CustomersFiltersRoute = Ember.Route.extend({
model: function(params) {
if(params.filter == "active") {
return _.where(App.Customers, {isActive: true});
}
return App.Customers;
},
serialize: function(model){
if(model === App.Customers){
return {filter:'all'};
}
return {filter:'active'};
}
});