angularjs - 如何使 Angular 主布局中的 Controller 在路线更改时运行?

标签 angularjs

我有一个有 ng-controller 指令和 ng-view 指令的 Angular 页面。

<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 中有逻辑控制我需要运行的模板 View 的一部分。

但是,如果我刷新整个页面,两个 Controller 都会运行。

有没有办法让两个 Controller 都运行?这是要遵循的错误模式吗?

最佳答案

将逻辑从 MainController 移动到服务中,取决于各个 View Controller 中的服务。然后从 View Controller 调用服务以执行您的逻辑。

关于angularjs - 如何使 Angular 主布局中的 Controller 在路线更改时运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19128628/

相关文章:

AngularJS - 自定义指令范围 "&"做什么?

javascript - ajax 调用结束并返回新数据时如何阻止或处理用户输入

javascript - 如何在智能表中按日期对项目进行排序

javascript - 如何从函数中的函数返回 deferred.resolve()

javascript - ui-bootstrap-tpls 和 ui-bootstrap

html - Ng-Model 返回 null 而不是什么都没有

javascript - Angular 模板缓存不起作用

c# - WebApi 2 OAuth 外部登录访问 token 问题

angularjs - Angular 1.6.9 @uiRouter : Error: [ng:cpws] Can't copy! 不支持复制 Window 或 Scope 实例

javascript api 调用,按特定顺序发送和处理数据