加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何使角度主布局中的控制器在路径更改时运行?

发布时间:2020-12-17 17:48:37 所属栏目:安全 来源:网络整理
导读:我有一个带有ng-controller指令和ng-view指令的角度页面. body ng-controller="MainController" h1Welcome to my main template/h1 ng-view/ng-view/body 我也配置了路由. angular.module('app',[]). config(['$routeProvider','$locationProvider',function
我有一个带有ng-controller指令和ng-view指令的角度页面.

<body ng-controller="MainController">
   <h1>Welcome to my main template</h1
   <ng-view></ng-view>
</body>

我也配置了路由.

angular.module('app',[]).
    config(['$routeProvider','$locationProvider',function($routeProvider,$locationProvider) {
        $routeProvider.
            when('/',{templateUrl: '/templates/home.html',controller: HomeController}).
            when('/start',{templateUrl: '/templates/start.html',controller: StartController});

        $locationProvider.html5Mode(true);
}]);

当我单击一个将我路由到/ start的URL时,只运行StartController,而不是MainController.我想这是有意义的,因为主要布局已经加载,然后模板只需要现在加载,但我的MainController中有逻辑控制我需要运行的模板视图的一部分.

但是,如果我刷新整个页面,则两个控制器都会运行.

有没有办法让两个控制器都运行?这是错误的模式吗?

解决方法

在主控制器上侦听$routeChangeSuccess,以便在路由更改时收到通知.

app.controller('MainController',function($scope) {
  $scope.$on('$routeChangeSuccess',function(event,current,previous,rejection) {
    if (current == 'someRoute') {
      //execute some route logic
    }
  });

})

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读