Angular - 如何在一个状态下的多个视图中使用相同的控制器而不运行两次?

时间:2017-12-12 10:05:32

标签: javascript angularjs model-view-controller angular-material

我正在尝试设置一个应用程序,该应用程序使用通知控制器来管理通知页面/状态以及所有其他页面的索引模板中的功能。

所以我在索引模板中有一个特定的元素,并且通过ng-controller指令启动控制器,如下所示:

<md-menu md-position-mode="target-right target" md-offset="10% 0%" ng-controller="notificationsController as notifications">

我也有通过ui-router状态定义启动的相同控制器的通知状态,如下所示:

.state('notifications', {
    url: '/notifications',
    templateUrl: 'views/notifications.html',
    controller: 'notificationsController',
    controllerAs: 'notifications'
})

问题在于控制器中的功能正在运行两次,因为状态和ng-controller元素在通知页面上都存在。但是,我需要md菜单来访问控制器。

如何设置或重新排列,以便md-menu元素和主要通知状态都使用相同的控制器而不运行两次函数?

1 个答案:

答案 0 :(得分:0)

从指令中,您可以访问父级的控制器。检查一下 Angular example