我有一个元素,它有一个 Controller 和一个应用了隔离作用域的指令:
scope: {
dirVar: '='
}
目标是仅当变量为真时才运行指令的某些部分。我在 Controller 中设置该变量并尝试通过 attr 将其传递到指令中。
问题是当我做类似的事情时
<div ng-controller="MyCtrl" my-directive active="ctrlVar"></div>
并尝试在带有 scope.active
的指令中获取 active
,它总是未定义。
这是一个例子:http://jsfiddle.net/u3t2u/1/
关于为什么或如何正确执行此操作的任何解释?我认为问题出在 Controller 和指令应用于同一元素并希望解决这个问题。
另一种选择是删除指令的隔离范围并让它评估传递给它的 attr,但我不确定该怎么做($parse
不断抛出错误)。
最佳答案
那是因为你的指令不在 Controller 内部。试试这个:
<div ng-app="myApp">
<div ng-controller="MyCtrl">
<div my-directive="" active="myValue">
Testing.
</div>
</div>
</div>
关于javascript - AngularJS:指令没有从范围中获取 Controller 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17356327/