我有以下路线和模型设置。我的所有用户都可以使用模板显示 按预期显示firstName和email。 但是,当路由类似于:user_id工作时,我无法通过firstName或电子邮件进行过滤。 (我现在正在使用夹具适配器)
示例:#/ users / logan
this.resource('users', function(){
this.resource('user', {path: ':user_firstName'}); //#/users/logan
});
以下型号
App.User = DS.Model.extend({
firstName: DS.attr('string'),
email: DS.attr('string')
})
那么进一步总结一下,究竟模型函数中应该发生什么,或者我可以采用其他方法?
App.UsersRoute = Em.Route.extend({
model: function(){
var user = App.User.find();;
//FILTER BY firstName how?
return user;
}
});
答案 0 :(得分:2)
您可以在路线上创建一个事件,将控制器内容更改为模型的过滤器。
模板:
<span {{action filterByName}}>Filter by name</span>
路由器:
App.UsersRoute = Ember.Route.extend({
events: {
filterByName: function() {
this.get('controller').set('content', this.get('currentModel').filterProperty('firstName', 'John'));
}
}
});