我有這樣灰燼嵌套的路線,並承諾
var fetchMessages = function(){$.getJSON(<some url>).then(function(data){ return data; }};
var messages = fecthMessages();
我的路線定義一個jquery Ajax調用是建立這樣
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'不是函數,你不能執行它。 |所以,燼可以處理從'model()'返回的承諾? |在哪裏定義了「findBy」? – Bergi 2014-09-10 14:41:26
對不起,編輯。 'fetchMessages'是一個函數。 'findBy'是一個Ember的東西。我將這些示例代碼作爲基礎 - https://github.com/tildeio/bloggr-client/blob/master/js/app.js – 2014-09-10 15:09:11
「.then(function(data){return data;} ''是去掉'textStatus'和'jqXhr'的參數嗎? – Bergi 2014-09-10 15:24:31