角度指令后链接顺序错误(1.3)
Angular Directive Post Link Order Is Wrong (1.3)
我有两个嵌套的自定义指令。通常情况下,post-link函数是按相反的顺序启动的,但在我的特定情况下,它们是自上而下启动的,这阻碍了我可靠地修改DOM的能力。我曾试图在Plunker中重现这个问题,但它总是正确的,所以我完全被难住了!
<message-container> <------ The template for this directive contains the directive <scrollable-content>
</message-container>
可滚动内容
return {
restrict: 'E',
templateUrl: 'core/app/partials/common/scrollable.html',
transclude: true,
replace: true,
scope: true,
link: function ($scope, $element, $attrs) {....
消息容器
return {
restrict: 'E',
replace: true,
scope: true,
templateUrl: 'core/app/partials/chat/message-container.html',
link: function ($scope, $element) {....
由于我无法用任何其他指令或在plunker中复制这一点,有人知道这是如何或为什么会发生的吗?基本上,在消息容器的链接函数中,我想在可滚动的内容指令标记中添加一些事件侦听器。消息列表的链接函数中的元素只有的标记,而没有编译的内容。
感谢您的帮助!
UPDATE:我们的模板是预缓存的
几个月前,我深入研究了这个问题,它似乎是错误的。但这背后其实是有逻辑的。templateUrl下载模板async,并在模板返回后触发这些节点的编译。如果您使用缓存的模板,这甚至会以这种方式工作。tempateURL的"加载"将在当前摘要周期准备就绪后完成。事实上,即使模板已经在$tempateCache
中对此进行了一些讨论,并对文档进行了调整,以强调这种行为。
如果您确实需要订单,请使用静态模板。或者使用这样的技巧:
template: $templateCache.get('myTemplate.html'),
当然,你需要预先加载你的模板,使这项工作!
- Javascript执行顺序错误
- 按 [field] 值对 javascript 数组进行排序会给出错误的顺序
- 带有 CommonsChunkPlugin 的 Webpack 会导致 html 文件中的捆绑顺序错误
- For循环以错误的顺序返回promise
- Javascript错误的警报顺序
- three.js:透明对象根据相机角度按错误顺序渲染
- ES6模块初始化顺序错误
- 在Firefox中的keydown事件中隐藏元素时焦点顺序错误
- 使用 JS 填充 HTML 表,数据顺序错误
- JavaScript 排序顺序错误
- Angular + Requirejs - 以错误的顺序加载
- Mixpanel javascript 集成:连续的事件在 mixpanel 结束时以错误的顺序记录
- 视图中的 JavaScript 错误 - 加载顺序
- ReactJS:Dom 渲染顺序错误
- JQuery 错误的脚本顺序
- AngularJS$q承诺成功的回调以错误的顺序执行
- Angular orderBy:“timestamp”将事物按错误的顺序排列
- kafka节点的消息顺序错误
- 在IE8和IE7(Telerik radgrid)中以错误的顺序触发javascript事件
- angularjs ng repeat中的错误顺序