Emberjs:如何使用路由过滤任何属性的用户

时间:2013-03-08 06:44:03

标签: javascript ember.js ember-data ember-router

我有以下路线和模型设置。我的所有用户都可以使用模板显示 按预期显示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;
    }
});

1 个答案:

答案 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'));
    }
  }
});