angularjs - Angular 中为自定义指令保留的命名空间?

标签 angularjs angularjs-directive

我有一个用例,我需要使用 $compiler 服务手动编译指令。

我试图手动编译以下内容:<tr-item item="item"></tr-item> 。在正确的范围内正确调用 $compile 后,没有返回任何元素。

经过一番调查,我注意到如果我替换 tr-itemtr_item ,我开始从 $compile 服务获取有效元素。

最后,我将命名空间从 tr-item 切换过来。至my-item ,并注意到使用“my”命名空间,破折号和下划线语法都有效。

我创建了一个 plunker 来展示该问题:http://plnkr.co/edit/kOv7oFnukZxHMEi3xasF

“tr”是保留的命名空间吗?如果答案是肯定的,那为什么要保留呢?

我尝试了其他匹配html元素的命名空间,“td”也有同样的问题,但“div”工作正常。

如果您对此有任何见解,我将不胜感激!

最佳答案

$compile 首先会使用jqLit​​e将DOM元素转换为JQuery元素,引用这个https://github.com/angular/angular.js/blob/master/src/ng/compile.js#L1179

而jqLit​​e会将一些保留标签如trtheadtd等映射为综合标签名称,引用:https://github.com/angular/angular.js/blob/master/src/jqLite.js#L153

尝试将指令编译为属性,但最好避免使用此类保留标记名称。

关于angularjs - Angular 中为自定义指令保留的命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27739367/

相关文章:

javascript - Angular ui-router 中的 fromState 返回空对象

javascript - AngularJS - 将数据添加到现有模型

javascript - 如何获取 Angular 中的行单击事件?

javascript - AngularJS 如何使用 ng-repeat $compile 元素?

javascript - AngularJS - 在事件中刷新 ngRepeat 数组数据

javascript - 在 angularjs 中使用带有 rootScope 事件的工厂

javascript - Angular $http 正在发送 OPTIONS 而不是 PUT/POST

javascript - D3图表 Angular Directive(指令)不呈现

javascript - 嵌套 Angular 指令触发父级的作用域函数

javascript - 我应该如何实现 Angular 选择指令?