我有一个像这样定义的 jquery ajax 调用
var fetchMessages = function(){$.getJSON(<some url>).then(function(data){ return data; }};
var messages = fecthMessages();
我的路线是这样设置的
App.Router.map(function() {
this.resource('messages', function() {
this.resource('message', { path: ':message_id' });
});
});
我使用 promise messages
在我的 route 这样
App.MessagesRoute = Ember.Route.extend({
model : function(){
return messages;
}
});
上述路线工作正常。
接下来我有一个嵌套路线,如下所示。然而,当我直接尝试访问 #/messages/<id of the message>
时,会出错。 。加载中#/messages
随后访问#/messages/<id of message>
工作正常。
App.MessageRoute = Ember.Route.extend({
model: function(params) {
message = messages.findBy("id", params.message_id);
return message;
}
});
那么我如何处理嵌套路由中的 promise ?
最佳答案
So how do I handle the promises in nested routes?
显然Ember handles these for you .
This however errors out when I directly try to visit #/messages/:
App.MessageRoute = Ember.Route.extend({ model: function(params) { message = messages.findBy("id", params.message_id); return message; } });
messages
仍然是一个 promise ,而不是一个数组;它没有 findBy
方法。相反,使用
return messsages.then(function(m) {
return m.findBy("id", params.message_id);
});
关于javascript - Ember 嵌套路由和 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25767885/