我正在构建一个Ember应用程序,它使用$ .getJSON从服务器请求数据。 问题是Ember似乎无法识别我的模型并根据从服务器返回的json自动创建它(它的属性比我模型中的更多)。
Ember代码
var App = Ember.Application.create({});
App.ViewObject = DS.Model.extend({
title: DS.attr('string'),
description: DS.attr('string'),
ComputedProp: function () {
return this.get('title') + ' - test';
}.property('title')
});
App.ViewObjectRoute = Ember.Route.extend({
model: function () {
//served JSON structure is {title:'test',description:'abc',price:20,...}
return $.getJSON(myServerUrl);
},
});
App.Router.map(function () {
this.resource('viewObject', { path: '/' });
});
使用Ember Inspector我可以看到正在使用的模型具有从服务器返回的所有属性,但是如果我尝试使用" ComputedProp"财产没有任何反应,这让我觉得Ember并没有认识到我的模型定义。我通过评论我的模型证实了这一点 - 这样做之后没有任何改变。
是否有我不遵循的命名惯例? 我应该如何让Ember将JSON从服务器映射到我的模型?
由于
更新
似乎发生了这种情况,因为我没有使用Ember数据REST适配器,而是手动发出请求,因为它需要一些调整才能与我的JSON API相处。 在我从模型创建记录并填充数据后,事情开始起作用了:
var store = this.store;
$.getJSON().then(function(data){
return store.createRecord('ViewObject', data);
});
如果我在这里做的事情有任何我应该考虑的副作用,那也很好。感谢