已经有几个问题要求类似的事情,但到目前为止,没有一个答案对我有用。我有以下代码,我想从DashboardController中的UsersController访问模型:
JP.DashboardController = Ember.ArrayController.extend({
needs: ['users']
});
JP.UsersController = Ember.ArrayController.extend({
model: function(){
return JP.User.find();
},
sortProperties: ['id']
});
我的dashboard.template看起来像这样:
<div class="row-fluid">
<div class="span2">
{{#if controllers.users.isLoaded}}
{{#each user in controllers.users }}
{{user.name}}
{{/each}}
{{else}}
Users not loaded
{{/if}}
</div>
<div class="span10">
{{ outlet }}
</div>
</div>
为什么用户从未加载?我的代码出了什么问题? 感谢
答案 0 :(得分:0)
UsersController中的模型函数是导致问题的原因。 始终将实际对象(或对象数组)分配给控制器的model / content属性。你应该在Route而不是Controller中进行数据提取。如果你有一个UsersController,我想你也有一个UsersRoute?这可能有效:
JP.UsersRoute = Ember.Route.extend({
setupController : function(controller){
// the controller param is the instance of UsersController
controller.set("model",JP.User.find());
}
});
JP.UsersController = Ember.ArrayController.extend({
sortProperties: ['id']
});
如果您没有UsersRoute而只有DashboardRoute,请尝试以下方法:
JP.DashboardRoute = Ember.Route.extend({
setupController : function(controller){
// the controller param is the instance of DashboardController, so we have to get the UsersController first
this.controller("users").set("model",JP.User.find());
}
});