(使用 Ember 1.0.pre
)
当我的 Ember.js 应用首次为给定用户加载时,我想进行一次 ajax 调用,并且在该一次调用返回之前不加载任何与 ember 数据相关的数据。这是我认为我需要做的,但我不确定如何实现它:
- 在应用程序上实现
ready()
- 在应用程序上调用
deferReadiness()
- 发起ajax调用
- 在 ajax 回调处理程序中调用
advanceReadiness()
我不知道我需要如何或在哪里调用 deferReadiness()
。这是我尝试过的及其结果:
SocialRoi = Ember.Application.create({
ready: function() {
this.deferReadiness();
console.log('SocialRoi almost ready...');
this.advanceReadiness();
return this._super();
}
});
// RESULT:
// Uncaught TypeError: Object SocialRoi has no method 'deferReadiness'
知道我做错了什么吗?有没有更好的方法来实现我的目标?谢谢。
最佳答案
您可以这样做,例如将 Ember 与 SignalR 一起使用。
APP = Ember.Application.create({
appname: "MyEmberApp",
ready: function () {
console.log("hello from ember");
if (Ember.empty($.connection.hub) || !$.connection.hub.stateChanged) {
alert('SignalR error');
return;
}
}
});
APP.deferReadiness();
$.connection.hub.url = 'http://localhost:8085/signalr';
$.connection.hub.logging = true;
$.connection.hub.start()
.done(function () {
console.log("SignalR started!");
APP.advanceReadiness();
})
.fail(function () {
alert('SignalR error)';
});
APP.Router = Ember.Router.extend({
...
});
APP.initialize();
关于javascript - 延迟 ember.js 应用程序准备,直到初始 ajax 调用返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12463516/