私の Ember コントローラーでは、構成が変更されるたびに遅延読み込みを使用して追加のデータを取得しています。したがって、依存するすべてのデータがロードされるまで、バインディングの実行を遅らせたいと考えています。セッターの結果としてfalse値を返すとバインディングの実行が妨げられると思いましたが、バインディングは引き続き実行されます。読み込みが完了するまでバインディングの実行を遅らせるにはどうすればよいですか?
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);
},
});