Ember.js:循环遍历非关联查看从ArrayController数据
我已经建立了一个路线从而牵引帐户从REST端点信息:Ember.js:循环遍历非关联查看从ArrayController数据
Social.Router.map(function() {
this.resource('accounts');
});
Social.AccountsRoute = Ember.Route.extend({
model: function() {
return Social.Account.find();
}
});
Social.Account = DS.Model.extend({
name: DS.attr('string'),
username: DS.attr('string')
});
Social.AccountsController = Ember.ArrayController.extend();
我可以遍历像这样在我的模板数据:
<script type="text/x-handlebars" data-template-name="accountItem">
{{#each account in controller}}
<div class="avatar-name">
<p>{{account.name}}</p>
<p>{{account.username}}</p>
</div>
{{/each}}
</script>
我有另一个模板,我想使用相同的帐户数据。我如何从视图中检索与帐户模型相关的信息,以便我可以在相应的模板中使其可用?
Social.NewPostView = Ember.View.extend({
tagName: 'div',
accounts: function(){
// return Account data here?
}
});
更新1
左边是 “活” 的帐户数据。右侧是静态HTML。我想重复使用右侧左侧的数据。合理?
你应该看看需要属性的控制器。这使您可以指定一个您可以从当前控制器访问的控制器列表。在emberjs guides
NewPostController
更多信息
Social.NewPostController = Ember.ObjectController.extend({
needs: ['accounts'],
init: function(){
this._super();
console.log(this.get('controllers.accounts'))
}
});
然后,从您的模板:
<script type="text/x-handlebars" data-template-name="newPost">
{{#each account in controller.controllers.accounts}}
<div class="avatar-name">
<p>{{account.name}}</p>
<p>{{account.username}}</p>
</div>
{{/each}}
</script>
Hrm。这似乎是一个很好的解决方案。我还没有'Social.NewPostController',但我已经添加了它,而我什么都没有。我尝试通过访问控制台中的Social.NewPostController.get('accounts')'来调试,并得到一个TypeError。我以前从未使用过需求选项,因此可能比我想象的要多。 – commadelimited 2013-02-26 22:52:33
@commadelimited:如果你想从控制台进行调试:'Social .__ container __。lookup(“controller:newPost”)。get('controllers.accounts')' – ThomasDurin 2013-02-26 23:19:23
Thanks Thomas。我会看看你添加的其他行。 – commadelimited 2013-02-27 03:02:31
如果你有嵌套在上面的新视图,你应该有权访问它的上下文。你能更详细地描述你的用户界面和路线吗?你是否需要在嵌套视图中再次使用完全相同的“find.all”,或者只需要UI在显示其他内容时继续显示数组? – 2013-02-26 22:23:14