javascript - AngularJS:指令没有从范围中获取 Controller 的变量

标签 javascript angularjs

我有一个元素,它有一个 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/

相关文章:

javascript - 如何使用 AngularJS 在同级组件中运行函数?

javascript - 获取 ng-repeat 重复输入元素的值

javascript - 单页网站的客户端模板

javascript - 如何让 slider 完全滑动纯javascript

javascript - 页面内容太宽

javascript - 在测试 Web 应用程序时,我是否应该担心使用 selenium 发送纯文本密码

routing - 使用 AngularJS 路由并使用 requirejs 按需加载 Controller

javascript - 如何修改粘贴事件的结果?

angularjs - 在 1.2+ 中从 $http 返回数据时,模板缓存中的模板不呈现绑定(bind)

javascript - 如何将从 getTime() 方法收到的日期转换为 DD-MM-YYYY 格式?