观察Ember.js中的关系

时间:2013-10-02 03:50:39

标签: ember.js

我有一个关系模型:

Whistlr.Organization = DS.Model.extend
  upload: DS.belongsTo('upload')

在控制器中,我想观察这种关系的变化:

Whistlr.OrganizationController = Ember.ObjectController.extend

  image: (->
    alert "The upload has changed!"
  ).property('upload')

但是当我设置上传时,这不会触发:

@set('upload', upload)

我们能否以与观察其他属性相同的方式观察关系?如果没有,有办法吗?

1 个答案:

答案 0 :(得分:1)

通过使用property,您告诉Ember image只是您想要展示的内容。 Ember希望该方法返回一个基于'upload'的值。如果您之前在某个模板中显示image,则Ember将仅调用该方法。您可能希望使用observes而不是propertyobserves告诉Ember,无论upload是否已在模板中显示,您的应用都需要在image值发生变化时执行操作。

  image: (->
    alert "The upload has changed!"
  ).observes('upload')

以下是Ember文档中有关如何决定使用哪一个的指导:http://emberjs.com/guides/object-model/what-do-i-use-when/