我刚刚开始使用余烬,我慢慢绕过它。这很可能是一个非常容易回答的问题,但我现在一直试图找到答案,并且没有运气。我正在使用ember-tools,并成功地使用我的Laravel API连接我的ember应用程序。我使用Fractal作为API的变换器,并使用JsonAPISerializer,我认为它是Ember的正确格式(看看here)。我刚刚尝试将用户记录中的数据插入到模板中以便开始使用。
这是返回的JSON:
{
"user":[
{
"id":1,
"firstName":"Jacob",
"surname":"Windsor",
"country":"",
"city":"",
"pro":false,
"emailSubscribed":false,
"emailConfirmed":false,
"artist":true,
"blogger":false,
"avatar":false,
}
]
}
这是我定义的路线:
this.resource('user', {path: '/user/:user_id'});
在user_route.js
:
var UserRoute = Ember.Route.extend({
model: function(params){
return App.User.find(params.user_id);
}
});
module.exports = UserRoute;
user.js
型号:
var attr = DS.attr;
var User = DS.Model.extend({
firstName: attr('string'),
surname: attr('string'),
country: attr('string'),
city: attr('string'),
pro: attr('boolean'),
emailSubscribed: attr('boolean'),
emailConfirmed: attr('boolean'),
artist: attr('boolean'),
blogger: attr('boolean'),
avatar: attr('boolean'),
});
module.exports = User;
最后是把手模板:
<h2>user</h2>
{{firstName}}
控制台中没有错误,如果我导航到/#/user/1
,则会从API检索资源。我想也许我的命名约定有问题,但可能根本就没有从API中检索资源。如果需要更多信息来帮助我,请说明。
在ember检查器中,如果我点击用户模型(<App.User:ember333:1>
),它会提供模型数据,但不会从API响应中填充。所以所有字符串值都是空的,所有布尔值都是假的,但ID是正确的,所以我假设ember已经从URL中检索到它。
我已将模型代码更新为:
var UserRoute = Ember.Route.extend({
model: function(params){
return this.store.find('user',params.user_id).then(function(){
alert('working!');
}, function(){
alert(':(');
});
}
});
它确实显示为正常工作,因此可能会正确地点击API。