在我的 Ember 控制器中,每当配置更改时,我都会使用延迟加载来获取额外的数据。因此,我想延迟绑定的执行,直到加载所有依赖的数据。我认为返回一个 false 值作为 setter 结果将阻止绑定执行,但绑定仍然执行。如何延迟绑定执行直到加载完成?
App.ConfigController = Ember.ArrayController.extend({
currentConfiguration: null,
configuration: function(key, value){
if(arguments.length === 1){
return this.get('currentConfiguration');
}
var self = this;
// load additional data
this.loadData(id, function(data){
self.set('currentConfiguration', value);
return value;
})
}
return false;
}.property('currentConfiguration'),
loadData: function(id, resultHandler, faultHandler){
var self = this;
var uri = 'http://foo.com/+id;
$.getJSON(uri)
.success(function(data, status, jqXHR){
resultHandler(data);
})
.error(faultHandler);
},
});