加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 09:40:55 所属栏目:安全 来源:网络整理
导读:我正在阅读关于 angularjs.org的开发人员指南的指令部分,以刷新我的知识并获得一些见解,并且我正在尝试运行其中一个示例,但是该指令ng-hide不适用于自定义指令. 这里的jsfiddle:http://jsfiddle.net/D3Nsk/: my-dialog ng-hide="dialogIsHidden" on-close=
我正在阅读关于 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不会传递给指令,因此元素不被隐藏.

Kain的建议调整使用$parent说明了这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读