我正在阅读关于
angularjs.org的开发人员指南的指令部分,以刷新我的知识并获得一些见解,并且我正在尝试运行其中一个示例,但是该指令ng-hide不适用于自定义指令.
这里的jsfiddle:http://jsfiddle.net/D3Nsk/:
<my-dialog ng-hide="dialogIsHidden" on-close="hideDialog()"> Does Not Work Here!!! </my-dialog> <div ng-hide="dialogIsHidden"> It works Here. </div>
任何关于为什么会发生这样的想法?
解
似乎标签上的变量dialogIsHidden似乎已经被引用了
到指令中的范围变量,而不是控制器中的变量;特定
该指令具有自己的封闭范围,使这项工作成为必要的通过
通过引用将控件的变量dialogIsHidden引用到指令.
这里的jsfiddle:
http://jsfiddle.net/h7xvA/
变化在:
<my-dialog ng-hide="dialogIsHidden" on-close="hideDialog()" dialog-is-hidden='dialogIsHidden'>
和:
scope: { 'close': '&onClose','dialogIsHidden': '=' },
在将对象指定到范围时,您将在指令内创建一个孤立的范围.这就是为什么$scope.dialogIsHidden不会传递给指令,因此元素不被隐藏.
原文链接:https://www.f2er.com/angularjs/140427.htmlKain的建议调整使用$parent说明了这一点.