繁体   English   中英

与 ng-attr-myCustomAttribute 匹配的自定义属性指令

Custom Attribute Directive being matched to ng-attr-myCustomAttribute

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在使用带有以下自定义属性指令的第三方库:

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 的值未定义,并且 snap-drawer attr 不会在 DOM 中呈现

我已经验证了 Angular 1.3 使用 ng-attr 执行了这种 AllOrNothing 方法: What is the best way to conditionally apply attributes in Angular? (看看 Mathew Foscarini 的回答)

但是在 DOM 中渲染的是:

<div ng-attr-snap-drawer="{{data.addSnapDrawer}}" class="snap-drawer snap-drawer-left" style=""></div>

因此,令人难以置信的是,angular.directive('snapDrawer') 与“ng-attr-snap-drawer”匹配。 这怎么可能,我真的很震惊 AngularJS,在它的所有荣耀中,有一个这样的错误。

我在网上找不到任何东西。 我无法设置 snap-drawer="false" 我需要它不出现在 DOM 中,这是我通过从 Angular 1.2 升级到 1.3 实现的。

1 个回复

这是旧的,但我偶然发现了一些非常相似的东西。 https://github.com/angular/angular.js/issues/16441 - angular 作者是这样做的。

您需要设计一种不同的方式(取决于您的用例)来有条件地应用指令(例如,使用 ng-switch 并有两个版本的 HTML;一个有指令,一个没有,或者有一个具有高优先级的终端指令来评估表达式,应用必要的指令并编译元素)。

1 与ng-attr或ng-class一起使用的属性指令

前言 我已经看到了许多有关使用ng-attr和指令的问题,但是我还没有看到这种特殊情况的实现。 代码和插件 http://bit.ly/1s6gWkD 用例 我正在尝试通过属性指令将加载叠加层动态添加到目标DOM元素中。 这个想法是,由于目标DOM元素具有attr ...

5 自定义指令attr绑定不起作用

我在尝试制作的选项卡/面板指令中遇到问题。 我需要能够为每个面板提供模板和控制器,既可以作为HTML中的字符串,也可以作为要绑定的表达式。 例如,我需要能够这样称呼... 或像这样 我在每个面板内部使用ng-if来打开和关闭内容,并使用ng-include和ng-contro ...

6 ng-attr不评估指令元素

我试图使用元素属性将数据从控制器传递到隔离的范围。 这是我在视图中的标记: 这是指令: 'use strict' angular.module('arlo.directives').directive "comment", ['Comment', (Comment) -&gt; ...

7 如何将结构指令与 ng-attr-* 结合使用?

这是我当前代码的最小示例,其中具有 updateName 权限的用户能够看到可编辑的输入字段。 但是正如您所看到的,代码块中的唯一区别是一个属性readonly 。 有没有办法避免为此使用两个代码块? 我听说ng-attr-*可能对此有所帮助,但我不确定它如何与结构指令一起使用。 ...

8 带有ng-attr的Angular指令绑定到模型

所有代码和预览在plunker 我想将一个属性双重绑定到指令范围,并从外部更改该属性,它会更改指令内的某些内容。 这里的错误是: 如果没有在attirbute中使用表达式,则所有表达式都按预期工作: 编辑: 此示例按预期工作: 在plunker中预览 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM