Ember.js 链接路由到单个对象,不带id
我准备好了这个。代码如下:Ember.js 链接路由到单个对象,不带id,ember.js,ember-data,Ember.js,Ember Data,我准备好了这个。代码如下: 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('strin
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>
使用此夹具:
App.User.FIXTURES = { name: 'Max Smith', email: 'max.smith@email.com' };
请注意,这是一个单独的元素,我没有在模型中循环使用#each
,因为这不应该是一个列表:只有一个元素
余烬拒绝接受这一点。我该怎么做才能让它工作呢?您可以从
模型
钩子中返回一个记录数组,因此ember正在为它生成一个ArrayController
,它希望它的内容
是一个数组
更改模型
挂钩以返回单个记录。例如,使用我作为id
App.IndexRoute = Ember.Route.extend({
model: function() {
return App.User.find('me');
}
});
然后你的模板就可以工作了。查看更新的。谢谢,尽管这不是我想要的。我的请求将转到
api/me
,服务器用登录用户的数据进行回复。我必须提供一个新的api端点api/users/me
(幸运的是我可以更改服务器端)。这很尴尬,因为我只有me
用户。但慢慢地,我开始相信,用余烬做这件事是不可能的。似乎余烬真的需要“查找所有”或“查找id为的对象”。这是不可能告诉余烬:“这里你有一个对象,只有一个它的类型,它没有id,但这是罚款”。
App.IndexRoute = Ember.Route.extend({
model: function() {
return App.User.find('me');
}
});