Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ember在加载时观察异步belongsTo关系属性_Javascript_Ember.js_Ember Data - Fatal编程技术网

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

Javascript Ember在加载时观察异步belongsTo关系属性,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,我试图观察一个异步belongsTo关系属性。我只想观察来自api的更改。所以我想到了一个单向绑定,并注意到了这一点。我只是不知道该怎么做 这个jsbin将绑定显示为普通的双向绑定。每次“某人”快乐时,它都会提醒你“某人快乐”。但我希望它只在数据来自api而不是用户输入时发出警报 双向绑定: isHappyDidChange: function() { if (this.get('model.spouse.isHappy')) { alert('Someone is happy');

我试图观察一个异步belongsTo关系属性。我只想观察来自api的更改。所以我想到了一个单向绑定,并注意到了这一点。我只是不知道该怎么做

这个jsbin将绑定显示为普通的双向绑定。每次“某人”快乐时,它都会提醒你“某人快乐”。但我希望它只在数据来自api而不是用户输入时发出警报

双向绑定:

isHappyDidChange: function() {
  if (this.get('model.spouse.isHappy')) {
    alert('Someone is happy');
  }
}.observes('model.spouse.isHappy')
我意识到这个jsbin是错误的,因为您需要触发绑定模板。那么正确的方法是什么呢

单向不正确绑定:

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

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

如果我能像这样观察孤岛:

isHappyDidChange: function() {
  if (this.get('model.spouse.isHappy')) {
    alert('Someone is happy');
  }
}.observes('model.spouse.isLoaded')
那就太好了,它可能会解决我的问题。但isLoaded并不意味着模型已经加载


谢谢

观察完成了以下步骤:

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

更新

仍然无法更新记录。也尝试过观察“didUpdate”,但没有效果。但我可以接受,至少在完成任务后开火