在 Ember 模板中列出获取的记录
Listing fetched records in an Ember template
我正在尝试通过跟随 Vic Ramons Ember Rails tutorial 来学习 ember。
我无法列出我从 Rails 获取的用户。
<!-- /templates/users.handlebars -->
<article id="users">
<h2>Users</h2>
<ul>
{{#each user in controller }}
<li>{{ user.email }}</li>
{{/each}}
</ul>
</article>
已呈现 /templates/users.handlebars
,但未列出任何用户。
我已经检查了 JSON 输出,没有问题。当我检查 chrome 中的 ember 检查器选项卡时,我可以在数据部分看到 20 'user' 个模型。
列出用户记录的正确方法是什么?
/routes/users.js:
Tagged.UsersRoute = Ember.Route.extend({
model: function(){ return this.store.findAll('user') }
});
/models/users.js:
Tagged.User = DS.Model.extend({
email: DS.attr('string')
});
/controllers/users.js:
Tagged.UsersController = Ember.Controller.extend({
});
/router.js:
Tagged.Router.map(function() {
this.resource('users', { path: '/users' })
});
adapters/application_adapter.js:
Tagged.ApplicationAdapter = DS.ActiveModelAdapter.extend({});
控制器JSON响应:
{ "users":[
{"id":"5599bbc44d6178d3ae000000","email":"sasha@example.com"},
{"id":"5599bbc54d6178d3ae000001","email":"roberta@example.com"},
{"id":"5599bbc54d6178d3ae000002","email":"reyna.mayert@example.com"}
# ...
] }
<article id="users">
<h2>Users</h2>
<ul>
{{#each user in model }}
<li>{{ user.email }}</li>
{{/each}}
</ul>
</article>
在模板中,控制器的模型 属性 通常不使用。如果将 /controllers/users.js 更改为:
Tagged.UsersController = Ember.ArrayController.extend({
});
应该可以。因为 UsersController 变成了一个 ArrayController,它可以与 #each 一起工作,而普通控制器则不能。
我正在尝试通过跟随 Vic Ramons Ember Rails tutorial 来学习 ember。
我无法列出我从 Rails 获取的用户。
<!-- /templates/users.handlebars -->
<article id="users">
<h2>Users</h2>
<ul>
{{#each user in controller }}
<li>{{ user.email }}</li>
{{/each}}
</ul>
</article>
已呈现 /templates/users.handlebars
,但未列出任何用户。
我已经检查了 JSON 输出,没有问题。当我检查 chrome 中的 ember 检查器选项卡时,我可以在数据部分看到 20 'user' 个模型。
列出用户记录的正确方法是什么?
/routes/users.js:
Tagged.UsersRoute = Ember.Route.extend({
model: function(){ return this.store.findAll('user') }
});
/models/users.js:
Tagged.User = DS.Model.extend({
email: DS.attr('string')
});
/controllers/users.js:
Tagged.UsersController = Ember.Controller.extend({
});
/router.js:
Tagged.Router.map(function() {
this.resource('users', { path: '/users' })
});
adapters/application_adapter.js:
Tagged.ApplicationAdapter = DS.ActiveModelAdapter.extend({});
控制器JSON响应:
{ "users":[
{"id":"5599bbc44d6178d3ae000000","email":"sasha@example.com"},
{"id":"5599bbc54d6178d3ae000001","email":"roberta@example.com"},
{"id":"5599bbc54d6178d3ae000002","email":"reyna.mayert@example.com"}
# ...
] }
<article id="users">
<h2>Users</h2>
<ul>
{{#each user in model }}
<li>{{ user.email }}</li>
{{/each}}
</ul>
</article>
在模板中,控制器的模型 属性 通常不使用。如果将 /controllers/users.js 更改为:
Tagged.UsersController = Ember.ArrayController.extend({
});
应该可以。因为 UsersController 变成了一个 ArrayController,它可以与 #each 一起工作,而普通控制器则不能。