[英]Emberjs - setProperties from a Promise
我正在嘗試從Promise的內部在路由器中設置變量,但似乎未正確設置。
我創建了一個小示例向您展示:
App.ApplicationRoute = Ember.Route.extend({
myVar: null,
model: function() {
var data = getData();
console.log(myVar); // = null
return data;
},
getData: function() {
var self = this;
return new Ember.RSVP.Promise( function(resolve, reject) {
self.setProperties({ myVar: 42 });
resolve(someGoodStuff);
reject(someBadStuff)
});
}
})
當我嘗試顯示myVar時,即使它正在等待諾言解決,它仍然為null ...我需要做一些特別的事情嗎? 還是我做錯了?
我相信您正在尋找這樣的東西: http : //emberjs.jsbin.com/gosoj/3/edit?html,css,js,output
我不完全確定您要在這里做什么,因此還有一些其他注釋的代碼可能是您的意圖。
我認為問題可能出在您何時進行控制台日志記錄,以及您未正確使用getter和setter以及調用getData()
的方式這一事實。
這是代碼:
App.ApplicationRoute = Ember.Route.extend({
myVar: null,
model: function() {
var data = this.getData();
console.log(data);
console.log(this.get('myVar')); // = null
return data;
},
getData: function() {
var self = this;
return new Ember.RSVP.Promise( function(resolve, reject) {
self.setProperties({ myVar: 42 });
resolve(42);
reject(reason);
}).then(function (value) {
//self.setProperties({ myVar: value });
console.log(self.get('myVar'));
}, function(reason){
console.log(reason);
});
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.