我正在评估余烬今天的一个项目和测试它与我们的api。我们有一个类似这样的帖子模型:
Hex.Post = Ember.Object.extend({
id: null,
body: null,
isEnabled: null,
createdAt: null
});
Hex.Post.reopenClass({
findById: function(id){
return Ember.$.getJSON("/arc/v1/api/post/" + id, function(data){
var post = Hex.Post.create();
post.set('id', data.id);
post.set('body',data.body);
post.set('isEnabled',data.is_enabled);
post.set('createdAt',data.created_at);
return post;
});
}
});
....
<script type="text/x-handlebars" id="post/_edit">
<p>{{input type="text" value=id}}</p>
<p>{{input type="text" value=isEnabled}}</p>
<p>{{input type="text" value=header}}</p>
<p>{{input type="text" value=created_at}}</p>
<p>{{textarea value=body}}</p>
</script>我正在使用LOG_TRANSITIONS: true运行这个应用程序,所以我能够看到我们正在进入正确的嵌套路由,并且正确的url正在被调用。但是,我的模板中有一个问题,就是它响应JSON返回的值,而不是findByID中设置的值。这意味着created_at可以工作,但createdAt不能工作,is_enabled不能工作,isEnabled不行。我做错了什么?thx预先
编辑#1
路线如下:
Hex.PostRoute = Ember.Route.extend({
model: function(params) {
console.log('called with: ' + params.post_id);
return Hex.Post.findById(params.post_id);
}
});编辑#2
如何构造详细的路线:
this.resource('posts', function(){
this.resource('post', { path: ':post_id' });
});发布于 2013-12-14 23:48:05
这是我的错,我没有在getJSON中看到逗号,实际上,我们将成功返回到函数和模型钩子,而不是函数,然后函数将结果返回到模型钩子。
return Ember.$.getJSON("/arc/v1/api/post/" + id).then(function(data){
var post = Hex.Post.create();
post.set('id', data.id);
post.set('body',data.body);
post.set('isEnabled',data.is_enabled);
post.set('createdAt',data.created_at);
return post;
});又名
id).then(而不是
id, https://stackoverflow.com/questions/20589515
复制相似问题