与ng attr myCustomAttribute匹配的自定义属性指令
Custom Attribute Directive being matched to ng-attr-myCustomAttribute
我正在使用具有以下自定义属性指令的第三方lib:
angular.directive('snapDrawer', function () {
'use strict';
return {
restrict: 'AE',
...
因此,如果在HTML元素中找到属性"snap drawer",则指令实现会匹配并触发,例如:
<div snap-drawer></div>
我使用的是Angular 1.3,它对ng attr有一种"AllOrNothing"方法,如果条件值未定义,则属性不会呈现为这样:
<div ng-attr-snap-drawer="{{data.addSnapDrawer}}"></div>
100%事实上,这是有效的,我的控制器中data.addSnapDrawer的值未定义,并且快照抽屉属性不会在DOM中呈现
我已经验证了Angular 1.3在这里使用ng-attr执行AllOrNothing方法:在Angular中有条件地应用属性的最佳方式是什么?(看看Mathew Foscarini的回答)
但是在DOM中呈现的是:
<div ng-attr-snap-drawer="{{data.addSnapDrawer}}" class="snap-drawer snap-drawer-left" style=""></div>
因此,令人难以置信的是,angular.指令("snapDrawer")与"ng attr snap drawer"匹配。这怎么可能呢,我真的很震惊AngularJS,在它辉煌的时候,却有这样的bug。
我在网上找不到任何东西。我不能设置snap drawer="false"我需要它不出现在DOM中,这是我通过从Angular 1.2升级到1.3实现的。
这很古老,但我偶然发现了一些非常相似的东西。https://github.com/angular/angular.js/issues/16441-棱角分明的作者就是这样做的。
您需要设计一种不同的方式(取决于您的用例)来有条件地应用指令(例如,使用ng开关并有两个版本的HTML;一个有指令,另一个没有,或者有一个具有高优先级的终端指令,该指令在链接阶段评估表达式,应用必要的指令并编译元素)。
- 设置自动分隔符的自定义属性
- 与ng attr myCustomAttribute匹配的自定义属性指令
- 获取自定义属性的值
- 新的自定义角度指令不起作用
- 如何创建自定义属性以添加if.bind
- 如何将属性添加到自定义角度指令
- 动态更新Angular2指令中自定义属性的值
- 使用jQuery更改输入字段的自定义属性
- 在 Javascript 生成的列表中,如何将自定义属性添加到 标记
- 在自定义角度指令中使用控制器
- 设置 HTML 自定义属性与在 ID 属性中存储信息
- 是否可以在 Polymer 中的
节点上使用自定义属性以获得漂亮的 API - 为什么克隆节点排除自定义属性
- 刷新 Angular 中自定义属性指令的元素
- angularjs具有自定义属性的自定义指令
- 自定义元素指令和属性
- 如何在自定义属性指令中访问父范围
- Angular自定义属性指令应该被另一个指令取代
- 为标签和属性组合创建一个自定义angular指令
- 如何使用动态名称创建Angular 2自定义属性指令