Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js:在控制器之间共享对象或在彼此之间共享控制器_Ember.js_Ember Old Router - Fatal编程技术网

Ember.js:在控制器之间共享对象或在彼此之间共享控制器

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

对于路线/dashboard,我在DashboardView中有DashboardController和两个不同的命名插座

/dashboard路线的连接插座如下所示

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