EmberJS:根据另一个属性重新加载控制器模型的最佳方法?

som*_*y32 11 javascript ember.js ember-data

基于另一个属性为当前控制器重新加载模型的最佳方法是什么?

例如:我有一个帖子控制器.作者只能有一个帖子.如果currentAuthor属性发生更改,我想重新加载post创建表单.

我试过这样的方式:

App.PostEditController = Ember.ObjectController.extend
  modelReloadNeeded: Ember.observer((obj, keyName) ->
    postId = @get('currentAuthor').get('post_id')

    if postId?
      @set('model', @store.find('post', postId))
  , 'currentAuthor.post_id'
  )
Run Code Online (Sandbox Code Playgroud)

它重新加载所有东西,但不是真正的模型,而是承诺.而且它看起来不像是一个惯用的Ember解决方案.

也许有更好的方法来解决这个问题?

chr*_*els 0

我很紧张为您提供这个问题的解决方案,因为我不确定您是否正确处理它,但是:

App.PostEditController = Ember.ObjectController.extend({
  modelReloadNeeded: function () {
    this.get('content').reload();
  }.observes('currentAuthor')
});
Run Code Online (Sandbox Code Playgroud)

这应该重新加载PostEditController的内容属性,因此每当内容的currentAuthor属性发生更改时都会更新您的模板。