0

我有一个有关系的模型:

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)

我们可以像观察其他属性一样观察关系吗?如果没有,有没有办法这样做?

4

1 回答 1

1

通过使用property你告诉 Ember 这image只是你想要展示的东西。Ember 期望该方法返回一个值,该值基于'upload'. image如果您之前在某个模板中显示过,Ember 只会调用该方法。您可能想使用observes而不是property. observes告诉 Ember 您的应用程序需要在值发生变化时采取措施,upload无论是否image已在模板中显示。

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

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

于 2013-10-04T19:49:43.393 回答