6

次のようなルートがあります。

App.PeopleRoute = Ember.Route.extend({
  model: function()
  {
    return App.Persons.find(personId);
  }
});

ここで、personId は非同期にロードされ、Ember の外部の通常の JavaScript 変数です。ルートが表示されると、現在の PersonId が取得され、適切なデータが表示されます。しかし、personId の値を変更しても、ビューは更新されません。

私の質問は、このルートを更新して新しい personId を持つレコードを見つける方法は何ですか?

4

1 に答える 1

2

これは、modelフックが動的セグメントを含むルートの URL 経由で入力された場合にのみ実行されるためです。詳しくはこちらをご覧ください。

これに対する最も簡単な解決策は、 を使用することtransitionToです。

App.PeopleRoute = Ember.Route.extend({
  model: function(params)
  {
    return App.Persons.find(params.personId);
  },
  actions: {
    personChanged: function(person){
       this.transitionTo("people", person);
    }
  } 
});

App.PeopleController = Em.Controller.extend({
  observeID: function(){
     this.send("personChanged");
  }.observes("model.id");
});
于 2014-01-26T10:10:22.183 に答える