2013-08-03 5 views
6

は、私はこのようなルートを持っている:Ember.Routeモデルを動的に更新するには?

PERSONIDはasynchronicallyロードされ、エンバー外の通常のJavaScript変数です
App.PeopleRoute = Ember.Route.extend({ 
    model: function() 
    { 
    return App.Persons.find(personId); 
    } 
}); 

。ルートが表示されると、現在のPersonIdが取得され、適切なデータが表示されます。しかし、私はpersonIdの値を変更するとビューを更新しません。

私の質問は、新しいpersonIdでレコードを見つけるためにこのルートを更新する方法です。

+0

私はおそらくこれを行う方法を見つけることができましたが、私がする前に、あなたはなぜこれをやりたいのですか教えてください。あなたはEmber.jsのやり方で簡単にできることをしようとしているかもしれません。 –

+0

@tarasmが正しいと思いますが、枠組みから外れたことをするためにフレームワークと戦っているのであれば、必要なものを達成するためのよりよい方法があるので、アプローチを再考するべきです。あなたのユースケースをもっと詳しく説明してください。私はあなたを助けることができると確信しています... – intuitivepixel

答えて

2

これは、modelフックが実行されるのは、動的セグメントを持つルートのURLから入力された場合のみです。それについての詳細を読むhere

これの最も簡単な解決策は、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"); 
}); 
+0

私はこの解決方法を試みましたが、これはうまくいかないでしょう。移行は起こりますが、モデルは同じままです。 –

関連する問題