2

次のルートとモデルのセットアップがあります。すべてのユーザーがテンプレートを使用して正常に表示され、期待どおりに 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;
    }
});
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 に答える