0

已经有几个问题要求类似的事情,但到目前为止,没有一个答案对我有用。我有以下代码,我想从 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>

为什么永远不会加载用户?我的代码有什么问题?谢谢

4

1 回答 1

0

您的 UsersController 中的模型函数是问题的原因。始终将真实对象(或对象数组)分配给控制器的模型/内容属性。您应该在 Route 而不是 Controller 中获取数据。我猜你也有一个UsersRoute,如果你有一个UsersController?这可以工作:

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());
  }
});
于 2013-03-20T09:58:23.970 回答