为什么不能在具有隔离作用域的指令的模板中访问$rootScope?
为什么不能在具有隔离作用域的指令的模板中访问$rootScope?
使用隔离作用域,指令的模板似乎无法访问控制器('Ctrl')的$rootScope变量,但是在指令的控制器中是可见的。我明白为什么隔离作用域中的控制器('Ctrl')的$scope变量不可见。
HTML:
JavaScript:
angular.module('app', []) .controller('Ctrl', function Ctrl1($scope, $rootScope) { $rootScope.blah = 'Hello'; $scope.yah = 'World' }) .directive('myTemplate', function() { return { restrict: 'E', templateUrl: 'my-template.html', scope: {}, controller: ["$scope", "$rootScope", function($scope, $rootScope) { console.log($rootScope.blah); console.log($scope.yah); $scope.test = function(arg) { console.log(arg); } }] }; });
通过注释隔离作用域行可以访问该变量,如下所示:
// scope: {},