将任何控制器附加到DOM节点时,例如,
<div ng-controller="myController">{{testProperty}}</div>
控制器范围将与此DOM节点相关联。 想象一下另一个例子。我们创建了指令myDirective,它有自己独立的范围。现在我们有了
<div ng-controller="myController" myDirective>{{testProperty}}</div>
在这种情况下,哪个范围与DOM节点相关联?控制器或指令的范围?最后一个例子,我们还有一个指令mySecondDirective,它有自己的隔离 范围
<div myDirective mySecondDirective>{{testProperty}}</div>
在这种情况下,哪个范围与DOM节点相关联? myDirective或mySecondDirective的范围?你能解释一下原因吗?
答案 0 :(得分:0)
<div myDirective mySecondDirective>{{testProperty}}</div>
multiple directives defined on a single DOM element
,您可以明确定义priority:
- 请参阅:https://docs.angularjs.org/api/ng/service/$compile#directive-definition-object
<div ng-controller="myController" myDirective>{{testProperty}}</div>
在这种情况下,哪个范围将与DOM节点相关联?范围 控制器或指令?
for controller's $scope and a directive's scope defined on a single DOM element
:
&#34; transclude
选项更改了范围嵌套的方式。它使得transcluded指令的内容具有指令之外的任何范围,而不是内部的任何范围。这样做,它使内容访问外部范围。&#34;来自这里找到的angularjs文档:https://docs.angularjs.org/guide/directive#creating-a-directive-that-wraps-other-elements
答案 1 :(得分:-1)
谢谢,但你们所有人都错了。我发现无法在一个DOM节点上创建两个或多个作用域。 Angular抛出了这个错误:
Error: [$compile:multidir] Multiple directives [pTest2, pTest] asking for new/isolated scope on: <p-test p-test2="">