你得到的错误是因为它SingleRoute
是作为一个生成的,ArrayController
但 json 响应不是一个数组。
App.SingleController = Ember.ObjectController.extend({
});
进一步注意,使用和其他助手model
时不会触发钩子。linkTo
这是因为 Ember 假定如果您链接到模型,则假定模型是指定的,并且它直接使用该模型调用 setupController。在您的情况下,您仍需要加载单个帖子。我添加setupController
到路线来做到这一点。
App.SingleRoute = Ember.Route.extend({
model: function(params) {
return App.TKRPTumblr.find(params.id);
},
setupController: function(controller, id) {
App.TKRPTumblr.find(id)
.then(function(data) {
controller.set('content', data.response);
});
}
});
我稍微更改了单个帖子模板以反映 json 响应的方式。我所做的最后一项更改是直接返回$.ajax
. Ember 直接理解 jQuery Promise,所以你不需要做任何解析。
这是更新的jsbin。