問題は、各ルートのモデルに基づいてEmberがURLを構築することです。アクティブ/すべてのルートの下にルートを構築しようとすると、アイテムの配列(フィルターと呼ばれるフィールドがありません)を使用しているため、現在すべて/フィルターがあるかどうかを判断する方法がわかりません。モデル。良い習慣は、スラッグ(パス内の値)にモデルのプロパティと一致させることです。
一致しない場合は、ルート内のシリアル化メソッドをオーバーライドできるため、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'};
}
});