为什么Angular要把ng-scope类放在一个没有附加作用域的元素上?
Why is Angular putting the ng-scope class on an element that doesn't have a scope attached
我有一个jQuery插件,可以进行模板转换,还有一个Angular指令,在插件在生成的DOM节点上运行后,通过调用$compile与插件集成:
//in the link function of tiFormRender directive
element.empty();
compileForm(newForm, tiForms.frameworks(), element);
$compile(element.children())(scope);
这样可以正确处理插件生成的子树中的指令,但是由于某些原因,它将ng-scope
类添加到编译后的模板中:
<div ti-form-render="testForm">
<md-content class="layout-padding ng-scope layout-row">
<-- more DOM -->
</md-content>
</div>
ti-form-render
元素(没有创建作用域的原始指令)和md-content
元素具有与我期望的相同的作用域(与element.scope()
验证),那么为什么Angular将ng-scope
类附加到实际上没有作用域的元素上?
ng-scope
被添加到任何附加了作用域的元素中(一个作用域可以在多个地方附加),并且由于$compile进程将作用域附加到模板中,它将类添加到已处理的模板中。它只是看起来有点奇怪,因为它附加的作用域与父元素相同,这是由于我的hack解决方案。
相关文章:
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- 在具有命名作用域的自定义Polymer元素中隐藏表行
- 在AngularJS中将元素添加到作用域时,如何在所有设备上播放声音
- FireFox-在全局作用域中由id名称引用的元素.使用w3c标准
- AngularJS-将HTML元素的作用域更改为新的作用域
- 如果在transclusion之后添加,为什么指令下的动态元素具有错误的作用域
- 如果作用域值等于单击的元素的属性值,则Ng类
- 使用ng-click在作用域内定位元素
- 角度在元素的作用域中保存一个值
- 将元素绑定到不同帧中的现有 AngularJS 作用域
- 多个指令,一个元素具有单独的作用域
- Polymer.dom:dom元素的作用域查询选择器
- Angularjs-元素上有多个指令,其中一个是隔离作用域
- 在绑定元素时从作用域对象添加格式
- 与控制器在同一元素中的自定义指令作用域
- 访问子元素内的父作用域's onclick回调(Atom包)
- AngularJS-$编译一个元素并将作用域传递给它
- 为什么Angular要把ng-scope类放在一个没有附加作用域的元素上?
- 不能从AngularJS的作用域数组中移除元素
- 当方法影响作用域元素时的Angular服务设计