<cat color="black"></cat>
app.directive('cat', function() {
return {
restrict: 'E',
scope: {
color: '='
},
link: function(scope) {
alert(scope.color)
}
}
});
它会提醒未定义的消息。
我知道如果使用$ watch,这是可行的,但我不想要,因为参数可以相互依赖。
我想要的就像Vue的挂载功能或类似功能,我们可以直接用parmameter处理。
有没有人知道如何达到这样的目标?感谢
答案 0 :(得分:0)
定义scope: {}
时,您的属性有3种不同的选项。
=
。这将在指令中将属性设置为等于指令定义中指定的$scope
属性,具有双向关系。即,给定color: '='
和<cat color="black">
,父指令将查找属性$scope.black
并尝试将该属性分配给color
。对color
的更改将更改black
,反之亦然。@
。这将在指令中将属性设置为等于指令中命名的变量的值,采用单向关系。即<cat color="black">
将立即设置color == "black"
,并在初始化时设置。{/ li>
&
。这将设置指令中的属性等于父级中的函数。即<cat color="black">
将设置color == black
,color()
将执行black()
。鉴于此,要实现您的期望,您有3个选择:
$scope.black
属性,并将其设置为字符串值。<cat color="'black'">
。scope
定义更改为color: '@'
。