我試圖從後端加載一些JSON並啓動一個模型。到目前爲止,我覺得我得到的模型,但沒有其屬性設置:(EmberJS:模型未用數據初始化(ember-data)
這裏是我的測試代碼:
window.App = Ember.Application.create();
App.Router.map(function() {
this.resource('person', { path: '/people/:person_id' });
});
App.Adapter = DS.RESTAdapter.extend({
namespace: '~user1/embertest'
});
App.Store = DS.Store.extend({
revision: 11,
adapter: App.Adapter,
});
var attr = DS.attr;
App.Person = DS.Model.extend({
firstName: attr('string'),
lastName: attr('string')
});
App.PersonRoute = Ember.Route.extend({
model: function(params) {
return App.Person.find(params) ;
}
});
App.PersonController = Ember.Controller.extend({
contentDidChange: function() {
debugger ;
console.info(this.get('content'));
}.observes('content.isLoaded')
}) ;
而且數據是從JSON文件,該文件只包含加載:
現在{"persons": {"firstName": "Jeff","lastName": "Atwood"}}
,與本地主機URL /〜用戶/ embertest.html#人/ 10我看到數據被加載和控制方法contentDidChange被調用。但是當我做
this.content.get("firstName") ; // or this.get("content").get("firstName")
它返回「未定義」。這裏出了什麼問題?
最後,這裏是我的模板,是在:
<script type="text/x-handlebars" data-template-name="person">
Person: {{content.firstName}}
</script>
<script type="text/x-handlebars" data-template-name="application">
{{outlet}}
</script>
乾杯
您的JSON根應該只是「人」而不是「人」 –
如果我這樣做,我會在我的控制檯中得到以下錯誤消息:錯誤:斷言失敗:您的服務器返回了關鍵人物的散列,但您沒有映射因爲它 –