Ember JS没有将API中的数据插入到模板中

时间:2014-08-04 19:52:06

标签: javascript json ember.js

我刚刚开始使用余烬,我慢慢绕过它。这很可能是一个非常容易回答的问题,但我现在一直试图找到答案,并且没有运气。我正在使用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中检索资源。如果需要更多信息来帮助我,请说明。

更新1

在ember检查器中,如果我点击用户模型(<App.User:ember333:1>),它会提供模型数据,但不会从API响应中填充。所以所有字符串值都是空的,所有布尔值都是假的,但ID是正确的,所以我假设ember已经从URL中检索到它。

更新2

我已将模型代码更新为:

var UserRoute = Ember.Route.extend({
    model: function(params){
        return this.store.find('user',params.user_id).then(function(){
            alert('working!');
        }, function(){
            alert(':(');
        });
    }
});

它确实显示为正常工作,因此可能会正确地点击API。

0 个答案:

没有答案