我正在阅读 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': '='
},