我有一个元素,它既有控制器又有指令,并应用了隔离范围:
scope: {
dirVar: '='
}
目标是仅在变量为真时运行指令的某些部分。我在控制器中设置该变量并尝试通过 attr 将其传递给指令。
问题是当我做类似的事情时
<div ng-controller="MyCtrl" my-directive active="ctrlVar"></div>
并尝试使用 进入active
指令scope.active
,它总是出现未定义。
这是一个例子:http: //jsfiddle.net/u3t2u/1/
关于为什么或如何正确执行此操作的任何解释?我认为问题在于控制器和指令被应用于同一个元素并希望解决这个问题。
另一种选择是删除指令的隔离范围并让它评估传递给它的 attr,但我不确定如何做到这一点($parse
不断抛出错误)。