Ember 在加载时观察异步 belongsTo 关系属性

Ember observes async belongsTo relationship attribute on load

我正在尝试观察异步 belongsTo 关系属性。我只想观察来自 api 的变化。所以我正在考虑一种单向绑定并观察它。我只是不确定该怎么做。

此 jsbin http://jsbin.com/yaxame/1 将绑定显示为正常的双向绑定。每次 'someone' 'isHappy' 它都会提醒您 'Someone is happy'。但我希望它只在数据来自 api 而不是用户输入时发出警报。

双向绑定:

isHappyDidChange: function() {
  if (this.get('model.spouse.isHappy')) {
    alert('Someone is happy');
  }
}.observes('model.spouse.isHappy')

我意识到这个 jsbin http://jsbin.com/yaxame/2 是错误的,因为您需要触发绑定模板。那么正确的做法是什么?

单向错误绑定:

isHappyOneWay:  Ember.Binding.oneWay("model.spouse.isHappy"),

isHappyDidChange: function() {
  if (this.get('model.spouse.isHappy')) {
    alert('Someone is happy');
  }
}.observes('isHappyOneWay')

更新思路:

如果我能像这样观察 isLoaded:

isHappyDidChange: function() {
  if (this.get('model.spouse.isHappy')) {
    alert('Someone is happy');
  }
}.observes('model.spouse.isLoaded')

那就太好了,说不定能解决我的问题。但是 isLoaded 实际上并不意味着模型已加载... http://jsbin.com/yaxame/3

谢谢!

观察 isFulfilled 就可以了:

isHappyDidChange: function() {
  if (this.get('spouse.isHappy')) {
    alert('Someone is happy');
  }
}.observes('spouse.isFulfilled')

在 jsbin 中看到 http://jsbin.com/yaxame/4/

更新

仍然无法更新记录。 http://jsbin.com/yaxame/5/ Tried observing 'didUpdate' as well but that didn't work. http://jsbin.com/yaxame/6/但我觉得至少在满足之后再开火我没问题。