[英]Ember Nested Route and Promises
I have a jquery ajax call defined like this 我有一个像这样定义的jquery ajax调用
var fetchMessages = function(){$.getJSON(<some url>).then(function(data){ return data; }};
var messages = fecthMessages();
My routes are setup like this 我的路线是这样设置的
App.Router.map(function() {
this.resource('messages', function() {
this.resource('message', { path: ':message_id' });
});
});
I use the promise messages
in my routes like this 我在这样的路线中使用了Promise
messages
App.MessagesRoute = Ember.Route.extend({
model : function(){
return messages;
}
});
The above route works fine. 上面的路线工作正常。
Next I have a nested route like shown below. 接下来,我有一个嵌套的路由,如下所示。 This however errors out when I directly try to visit
#/messages/<id of the message>
. 但是,当我直接尝试访问
#/messages/<id of the message>
时,这会出错。 Loading #/messages
followed by visiting #/messages/<id of message>
works fine. 加载
#/messages
然后访问#/messages/<id of message>
可以正常工作。
App.MessageRoute = Ember.Route.extend({
model: function(params) {
message = messages.findBy("id", params.message_id);
return message;
}
});
So how do I handle the promises in nested routes? 那么我该如何处理嵌套路由中的promise?
So how do I handle the promises in nested routes?
那么我该如何处理嵌套路由中的promise?
Apparently Ember handles these for you . 显然, Ember为您处理了这些 。
This however errors out when I directly try to visit #/messages/:
但是,当我直接尝试访问#/ messages /时,这会出错:
App.MessageRoute = Ember.Route.extend({ model: function(params) { message = messages.findBy("id", params.message_id); return message; } });
messages
is still a promise, not an array; messages
仍然是一个承诺,而不是数组; it doesn't have a findBy
method. 它没有
findBy
方法。 Instead, use 相反,使用
return messsages.then(function(m) {
return m.findBy("id", params.message_id);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.