只是想知道如何處理「稍後調用」,當需要在外部作用域中引用「this」時。根據idomatic.js,Aliase似乎不是很好的做法。我引述:這種方式來綁定這個在Ember中的稍後調用
超越呼叫一般是衆所周知的使用情況和應用, 總是喜歡.bind(本)或同等功效,用於創建以後調用 BoundFunction定義。當沒有可用的選項時,只能使用 別名。
那麼在Ember中有沒有自以爲是的方式?例如:
export default Ember.Route.extend({
model() {
return new Ember.RSVP.Promise(function(resolve) {
Ember.run.later(function() {
resolve({ msg: 'Hold Your Horses' });
}, 3000);
});
},
setupController(controller, model) {
console.log(model.msg); // "Hold Your Horses"
}
});
如果在Ember.run.later()
我想this
解決後做一些事情:
this.controllerFor("application").set("dataReady", true);
例如。
我想,用aliase that
是:
model() {
let that = this;
return new Ember.RSVP.Promise(function(resolve) {
Ember.run.later(function() {
that.controllerFor('application').set('dataReady', true);
resolve({ msg: 'Hold Your Horses' });
}, 3000);
});
},
但有什麼更好的辦法?
那麼,爲什麼不使用bind(this)呢? –
沒有原因。只是想知道Ember是否有自己的方式。 – Hao