Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 通过rootScope将变量从控制器传递到另一个控制器_Angularjs - Fatal编程技术网

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>