我正在尝试观察异步的belongsTo关系属性。我只想观察来自api的变化。所以我正在考虑单向绑定并观察它。我不确定该怎么做。
此jsbin http://jsbin.com/yaxame/1将绑定显示为正常的双向绑定。每次都有人' ' isHappy'它提醒你“有人很开心”。但我希望它只在数据来自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
谢谢!
答案 0 :(得分:0)
观察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/尝试观察&#39;做了更新&#39;同样但这不起作用。 http://jsbin.com/yaxame/6/但是我现在至少在完成之后才开火了。