我有一个有 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/