我准备了这个jsfiddle。这是代码:
App = Ember.Application.create();
App.Store = DS.Store.extend({
revision: 13,
adapter: 'DS.FixtureAdapter'
});
App.Router.map(function() {
// put your routes here
});
App.User = DS.Model.extend({
name : DS.attr('string'),
email : DS.attr('string'),
});
App.User.FIXTURES = [{ id: 'me', name: 'Max Smith', email: 'max.smith@email.com' }];
App.IndexRoute = Ember.Route.extend({
model: function() {
return App.User.find();
}
});
这是模板:
<script type="text/x-handlebars" data-template-name="index">
{{#each model}}
<div class="form_labels_wrapper">
<dl class="dl-horizontal">
<dt>Id:</dt> <dd>{{id}}</dd>
<dt>Name:</dt> <dd>{{name}}</dd>
<dt>Email:</dt> <dd>{{email}}</dd>
</dl>
{{/each}}
</div>
</script>
我想要做的是显示单个用户的数据。 opbject没有id(它代表登录用户,与会话相关,并且没有可见的ember)。相反,我被迫创建一个用户列表(有一个用户),并给它一个假身份证(me
)。这在我的申请中毫无意义。
我想使用这个模板,但我不知道如何为此配置ember:
<script type="text/x-handlebars" data-template-name="index">
<div class="form_labels_wrapper">
<dl class="dl-horizontal">
<dt>Name:</dt> <dd>{{name}}</dd>
<dt>Email:</dt> <dd>{{email}}</dd>
</dl>
</div>
</script>
使用此灯具:
App.User.FIXTURES = { name: 'Max Smith', email: 'max.smith@email.com' };
请注意,这是一个元素,并且我没有使用#each
循环遍历模型,因为这不应该是一个列表:只有一个元素。
答案 0 :(得分:1)
你可以从model
钩子返回一个记录数组,因为ember正在为它生成一个ArrayController
,它希望它是一个数组content
。
更改model
挂钩以返回单个记录。例如,使用 me 作为id。
App.IndexRoute = Ember.Route.extend({
model: function() {
return App.User.find('me');
}
});
然后您的模板有效。请参阅更新的jsfiddle。