gpt4 book ai didi

angularjs - 为什么 ng-hide 不适用于自定义指令?

转载 作者:行者123 更新时间:2023-12-02 22:12:14 26 4
gpt4 key购买 nike

我正在阅读 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已经进行了引用指令内的作用域变量,而不是 Controller 中的变量;给定该指令有其自己的独立范围,为了使这项工作有效,有必要通过通过将 Controller 的变量dialogIsHidden引用到指令。

这里是 jsfiddle: http://jsfiddle.net/h7xvA/

更改于:

 <my-dialog 
ng-hide="dialogIsHidden"
on-close="hideDialog()" dialog-is-hidden='dialogIsHidden'>

和:

  scope: {
'close': '&onClose',
'dialogIsHidden': '='
},

最佳答案

将对象分配给作用域时,您正在指令内创建一个隔离的作用域。这就是为什么 $scope.dialogIsHidden 没有传递到指令,因此元素没有被隐藏。

Kain 建议使用 $parent 对 fiddle 进行调整说明了这一点。

关于angularjs - 为什么 ng-hide 不适用于自定义指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19850804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com