如果我在指令定义中声明以下隔离范围:
scope: {
state: '=',
},
这样说是否准确:=
将隔离范围上的 state
属性链接到与名为 state< 的属性关联的表达式返回的值
在指令声明上,在父作用域中运行?
最佳答案
例如,假设您的指令如下所示,
<div ng-controller="testCtrl">
<directive-name state="scope_variable"></directive-name>
</div>
那么如果我们这样使用
scope: {
state: '=',
},
state
指令上的属性应该是 $scope (testCtrl's)
变量,如果它是范围变量则 state
指向 testCtrl
中的相同变量的范围。
或 ex 的表达式,如 ...state="'scope_variable'"...
那么它是一个 String 并且它不指向作用域变量,并且如果您将其定义为 ...state="1+2"...
那么它的表达式是 state
指令范围内的变量等于 3
.
希望这是有道理的。
这是一个demo .
注意
如果我们将指令定义为隔离范围 scope: {}
然后 Angular 将从其直接父级创建一个子级作用域,(上一个示例的父级作用域是 scope of testCtrl
)。
查看所提供演示的控制台并查看 console.log(scope.$parent.name);
指向$scope.name
的MainCtrl
的范围。
关于javascript - 指令定义语法澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32883840/