【发布时间】:2014-09-10 23:32:20
【问题描述】:
我有一个这样定义的 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' });
});
});
我在这样的路线中使用了messages 的承诺
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;
}
});
那么如何处理嵌套路由中的承诺?
【问题讨论】:
-
fetchMessages不是函数,您不能执行它。 |那么 ember 可以处理从model()返回的承诺吗? |findBy定义在哪里? -
抱歉,已编辑。
fetchMessages是一个函数。findBy是 Ember 的东西。我基于这个示例代码 - github.com/tildeio/bloggr-client/blob/master/js/app.js -
.then(function(data){ return data; }的目的是剥离textStatus和jqXhr参数? -
不。它进行了一些我为简单起见跳过的数据操作。
标签: javascript jquery ember.js promise