对于路径 / dashboard ,我有 DashboardController & DashboardView 中的2个不同的指定插座。
/ dashboard 路径的connectOutlet 如下所示
connectOutlets: function(router) {
var appController = router.get('applicationController');
appController.connectOutlet('dashboard', {});
var dashboardController = router.get('dashboardController');
dashboardController.connectOutlet({
name: 'dashProjects',
outletName: 'dashProjects',
context: App.Project.find()
});
dashboardController.connectOutlet({
name: 'projectSummary',
outletName: 'projectSummary'
});
}
现在点击 DashProjectsView 中的项目( Project ),应该更新 ProjectSummaryView 。
在控制器之间共享对象(在本例中为 Project )的理想方式。
一种方法是在 App.currentProject 中创建共享的全局对象,但它失败了。
我认为, DashboardController 应该保留一个对象, DashProjects 和 ProjectSummary 应该访问它。欢迎任何指导/指示。
答案 0 :(得分:2)
也许您可以查看https://github.com/emberjs/ember.js/blob/master/packages/ember-views/lib/system/controller.js#L173,并将dashProjectsController连接到projectSummaryController。
答案 1 :(得分:1)
connectOutlets: function() {
router.get('dashboardController').connectControllers('projectSummary')
... Other code you might have here ...
}
App.DashboardController: Ember.Controller.extend({
projectSummaryController: null,
... Other code in your controller ...
}
然后,您可以从dashboardController获取projectSummaryController。