Ember.js 使用余烬数据,但未渲染模型上的属性
我刚刚开始使用余烬和余烬数据。我有一个非常简单的服务,它正在访问我的后端服务(在Node中编写)。我的服务返回两个项目。在我的HTML中显示了我的两个项目,或者至少显示了它们的ID。未呈现其他属性 结果:Ember.js 使用余烬数据,但未渲染模型上的属性,ember.js,ember-data,Ember.js,Ember Data,我刚刚开始使用余烬和余烬数据。我有一个非常简单的服务,它正在访问我的后端服务(在Node中编写)。我的服务返回两个项目。在我的HTML中显示了我的两个项目,或者至少显示了它们的ID。未呈现其他属性 结果: * Hello, 1 ! * Hello, 2 ! app.js var App = Ember.Application.create(); App.Store = DS.Store.extend({ revision: 11 }); App.Grunt = DS.Model.e
* Hello, 1 !
* Hello, 2 !
app.js
var App = Ember.Application.create();
App.Store = DS.Store.extend({
revision: 11
});
App.Grunt = DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string')
});
App.Router.map(function() {
this.route("grunts", { path: "/grunts" });
});
App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('grunts');
}
});
App.GruntsRoute = Ember.Route.extend({
model: function() {
return App.Grunt.find();
}
});
index.html
<script type="text/x-handlebars" data-template-name="application">
<div>
<p>{{outlet}}</p>
</div>
</script>
<script type="text/x-handlebars" data-template-name="grunts">
<ul>
{{#each controller}}
<li>Hello, {{id}} {{firstName}} {{lastName}}!</li>
{{/each}}
</ul>
</script>
谢谢你的帮助 默认的
RESTAdapter
映射是下划线->骆驼化表单。这意味着,如果模型的属性是firstName
,服务器应该发送包含first\u name
的JSON
要解决此问题,您可以发送如下所示的JSON:
"grunts": [
{
"id": 1,
"first_name": "Joe",
"last_name": "Bloggs"
}]
adapter.map('App.Grunt', {
firstName: { keyName: 'firstName'},
lastName: { keyName: 'lastName'}
});
或者重写RESTSerializer
中的keyForAttribute Name
函数。
对于一对一映射,您可以执行以下操作:
keyForAttributeName: function(type, name) {
return name;
}
或者像这样映射单个模型:
"grunts": [
{
"id": 1,
"first_name": "Joe",
"last_name": "Bloggs"
}]
adapter.map('App.Grunt', {
firstName: { keyName: 'firstName'},
lastName: { keyName: 'lastName'}
});