Ember.js:在控制器之间共享对象或在彼此之间共享控制器
对于路线/dashboard,我在DashboardView中有DashboardController和两个不同的命名插座 /dashboard路线的连接插座如下所示Ember.js:在控制器之间共享对象或在彼此之间共享控制器,ember.js,ember-old-router,Ember.js,Ember Old Router,对于路线/dashboard,我在DashboardView中有DashboardController和两个不同的命名插座 /dashboard路线的连接插座如下所示 connectOutlets: function(router) { var appController = router.get('applicationController'); appController.connectOutlet('dashboard', {}); var dashboardCo
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应该会更新
在控制器之间共享对象(本例中为项目)的理想方式是什么。
一种方法是在App.currentProject中创建一个共享的全局对象,但它无法达到这个目的
我认为,DashboardController应该持有一个对象,DashProjects和ProjectSummary应该访问它。欢迎提供任何指导/指针。也许您可以查看dashProjectsController并将其连接到projectSummaryController。也许您可以查看dashProjectsController并将其连接到projectSummaryController
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 ...
}
然后,您可以从仪表板控制器获取projectSummaryController
然后,您可以从仪表板控制器获取projectSummaryController 谢谢你的链接。但是connectController应该写在哪里呢?在出口处?例如,我有/dashboard和/statistics页面,需要相同的控制器。一种方法是,在两个路由的ConnectOutlet上编写connect connectController。还有其他地方或方法吗?我想你可以在应用程序准备好的时候做,定义
App.ready
功能。有关示例,请参见幻灯片31。感谢链接。但是connectController应该写在哪里呢?在出口处?例如,我有/dashboard和/statistics页面,需要相同的控制器。一种方法是,在两个路由的ConnectOutlet上编写connect connectController。还有其他地方或方法吗?我想你可以在应用程序准备好的时候做,定义App.ready
功能。有关示例,请参见幻灯片31