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のモデル関数が問題の原因です。コントローラのモデル/コンテンツプロパティには、常に実際のオブジェクト(またはオブジェクト配列)を割り当ててください。コントローラではなく、ルートでデータフェッチを実行する必要があります。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());
  }
});
于 2013-03-20T09:58:23.970 に答える