im работая над проектом, и мне трудно передать переменную от MainController
до NavbarController
, через rootScope
.Передайте переменную от контроллера к другому контроллеру через rootScope
Угловой не печатает переменную {{windowName}}, которую я передаю из MainController в NavbarController через $ rootScope.
Так что это код, который им с помощью:
Вид:
<body>
<nav ng-controller="NavbarController">
<ul>
<li>{{windowName}}</li>
</ul>
</nav>
<!-- this is where i use ng-view instead of MainController -->
<div ng-controller="MainController">
{{name}}
</div>
</body>
Контроллер:
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;
}
Filddle: http://jsfiddle.net/6v0fx6d2/1/
Объяснение:
Я использую ngRoute, поэтому я упростил код, в комментарии я использую ng-view для визуализации шаблонов, поэтому navbar - это базовый шаблон, который я использую.
Вся информация о $ scope.apply находится [здесь] (HTTP: //jimhoskins.com/2012/12/17/angularjs-and-apply.html) – Matheno