Angularjs 通过rootScope将变量从控制器传递到另一个控制器
我正在处理一个项目,我很难通过Angularjs 通过rootScope将变量从控制器传递到另一个控制器,angularjs,Angularjs,我正在处理一个项目,我很难通过rootScope将变量从MainController传递到NavbarController Angular不打印通过$rootScope从MainController传递到NavbarController的{windowName}}变量 这就是我使用的代码: 视图: 菲尔德尔: 说明: 我使用的是ngRoute,因此我简化了代码,在注释中我使用了ng view来呈现模板,因此navbar是我使用的基本模板。如果更改html结构,它将起作用 <div ng-c
rootScope
将变量从MainController
传递到NavbarController
Angular不打印通过$rootScope从MainController传递到NavbarController的{windowName}}变量
这就是我使用的代码:
视图:
菲尔德尔:
说明:
我使用的是ngRoute,因此我简化了代码,在注释中我使用了ng view来呈现模板,因此navbar是我使用的基本模板。如果更改html结构,它将起作用
<div ng-controller="MainController">
{{name}}
</div>
<nav ng-controller="NavbarController">
<ul>
<li>{{windowName}}</li>
</ul>
</nav>
{{name}}
- {{windowName}}
在angularjs中,控制器按照它们在代码中出现的顺序执行。因此,在您的情况下,windowName没有设置。所以它在NavbarController中不可用好的,我发现了问题 要打印rootScope变量,需要添加{{$route.windowName} 另外,如果将ExpressJS与HoganTemplate一起使用,请确保进行了更改 Hogan胡须括号中有以下内容:
app.locals.delimiters='{{}}'代码>
已找到$scope.apply的所有信息
var myApp = angular.module('myApp',[]);
function MainController($scope, $rootScope){
$rootScope.windowName = 'Window name 95';
$scope.name = 'Test name';
}
function NavbarController($scope, $rootScope){
$scope.windowName = $rootScope.windowName;
}
<div ng-controller="MainController">
{{name}}
</div>
<nav ng-controller="NavbarController">
<ul>
<li>{{windowName}}</li>
</ul>
</nav>