2013-03-20 2 views
0

есть уже несколько вопросов, требующих подобной вещи, но ни один из ответов не работает для меня до сих пор. У меня следующий код, где я хочу, чтобы получить доступ к модели из UsersController в DashboardController:Модель моделей контроллеров Ember.js от другого контроллера

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> 

Почему не пользователи никогда не загружаются? Что не так с моим кодом? Thanks

ответ

0

Функция модели в вашем UserController является причиной проблемы. Всегда присваивайте реальный объект (или массив объектов) свойству модели/содержимого вашего контроллера. Вы должны сделать выборку данных в Маршруте вместо Контроллера. У вас тоже есть UserRoute, если у вас есть UserController? Это может работать:

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()); 
    } 
}); 
+0

Спасибо, у меня нет UsersRoute, поэтому я попытался сделать это второй путь вы предложили и это работает. – lazzi

Смежные вопросы