问题在于,Ember根据每条路线的模型建立URL。当它试图建立在活动/所有路线下方的路线时,它使用您的项目数组(在其上没有字段称为滤波器),因此它不知道如何确定当前是否具有全/过滤器模型。一个好的做法是让您的slug(路径中的值:值)与模型上的属性匹配。
如果不匹配,则可以覆盖路线中的序列化方法,因此Ember知道如何序列化URL模型。
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'};
}
});