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/但我觉得至少在满足之后再开火我没问题。
我正在尝试观察异步 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/但我觉得至少在满足之后再开火我没问题。