我是AngularJS的新手。我已经开始从基础知识中学习它,并开始做最简单的例子和自定义的例子。最近我发现了一些AngularJS的奇怪行为。
我有以下代码段:
angular.module('test', [])
.controller('aCtrl', function($scope){})
.controller('bCtrl', function($scope){
$scope.message = 'Hello!';
})
.directive('b',function()
{
return {
controller: 'bCtrl',
};
});
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script type="text/javascript" src="src.js"></script>
</head>
<body ng-app="test">
<div ng-controller="aCtrl">
{{ message }}
</div>
<div b>
</div>
</body>
</html>
正如您在本示例中所看到的,我们定义了我们的模块 - test
,一个指令b
和两个控制器:aCtrl
和bCtrl
,并绑定{{1到bCtrl
。在b
的{{1}}服务中,我们定义变量bCtrl
并为其指定字符串$scope
。在message
代码中,您可以看到Hello!
元素包含html
和其中的两个body
元素:一个带有ng-app="test"
控制器,另一个带有{div
1}}指令。
上面的代码让我
aCtrl
根据我的理解,它不会产生任何结果,因为b
Hello!
控制器中没有定义变量message
。
这是正常行为还是我错过了一些关于AngularJS控制器和指令的内容?
答案 0 :(得分:0)
范围之间共享的指令取决于您在何处以及如何使用它。有不同类型的范围: - 共享,继承,隔离。我正在给你链接到我指的是什么。 Behavior of custom directives