2

我有以下路线和模型设置。我的所有用户都使用模板显示正常,并按预期显示名字和电子邮件。但是,当路由类似于 :user_id 的工作方式时,我无法按名字或电子邮件进行过滤。(我现在正在使用夹具适配器)

示例:#/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;
    }
});
4

1 回答 1

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'));
    }
  }
});
于 2013-03-08T09:24:52.717 回答