AngularJS:如何使使用transclusion的父指令在子指令之前编译
AngularJS: How to make parent directive using transclusion be compiled before the child directive?
我有以下结构:
<dad-dir>
<kid-dir></bar-dir>
<kid-dir></bar-dir>
</dad-dir>
这里,dadDir
是父指令,kidDir
是子指令。在dadDir
中,transclude
被设置为true。输出看起来像这样:
<div class='dad-dir'>
<span class='kid-dir'>Kid directive output</span>
<span class='kid-dir'>Kid directive output</span>
</div>
我遇到的问题是,kidDir
在dadDir
之前被编译/链接。这是一个问题,因为我希望dadDir
设置某些属性,而我希望kidDir
继承这些属性。我在dadDir
和kidDir
的link
函数中都有一个console.log
行,而kidDir
中的函数记录在dadDir
之前。
我已经尝试过更改优先级,将dadDir
的优先级设置为10,kidDir
的优先级设置成1,但没有效果。
有什么想法吗?
我相信这是我之前使用的angularjs 1.0.5版本中的一个错误。我刚刚升级到1.2,神奇的是,kidDir
的require: '^dadDir
'可以工作。
您是否尝试在母元素中进行transclude?
在fooDir指令中:
transclude: true
replace: true
template: "<div ng-transclude></div>"
然后在孩子身上barDir指令
require: '^fooDir'
相关文章:
- AngularJS指令出错-无法读取属性'编译'的未定义
- AngularJS:带有HTML和angular表达式的指令;编译”;具有外部范围的内容
- 在 ng-if 编译后访问指令中的 DOM 元素
- AngularJS:编译指令的输出
- 角度编译指令似乎进入了无限循环
- 在window.print()中加载为循环指令而编译时准备DOM失败
- 超链接;编译angular指令内的模板后无法工作
- 有棱角的如何在指令中编译指令
- AngularJS更改编译指令的顺序
- 重新编译AngularJS嵌套指令
- 在编译AngularJS指令中的模板之前,先评估传入的文本
- AngularJS$scope在指令中编译控制器时未定义
- 加载HTML后编译JS指令
- 如何延迟子指令的编译阶段,因为父指令的范围具有它所需的所有数据
- 编译指令在指令 AngularJS 中
- AngularJS 指令:使用包含/编译链接集合中的对象
- AngularJS:如何在指令编译和链接后从指令内部运行JavaScript
- AngularJS异步指令编译
- 角度指令编译/链接未被调用
- 是 Angular1.x 指令编译阶段的元素.ready 相当于 JavaScript 的 onload for a e