我有以下 html:
<div nag-tabs="tabsOptions">
<ul class="tabs">
<li ng-repeat="tab in tabs">{{ tab }}</li>
</ul>
<div class="tab_content">
<div ng-repeat="tabContent in tabsContent">{{ tabContent }}</div>
</div>
</div>
我遇到的问题是 tabs 指令在 ng-repeat 指令之前运行。
有什么方法可以让 tabs 指令在包含 nag-tab 指令内容的所有指令运行后运行(ng-repeat 或其他可能放入其中的内容)?
指令可以在三个不同的时间“运行”,因为指令可以具有编译、预链接和后链接方法。这个笨蛋包含两个示例 HTML 结构 - 一个使用 ng-repeat,一个不使用 - 当 3 个指令函数运行时,它会打印出来。
对于 ng-repeat 示例,我们看到 ng-repeat 预链接和后链接函数在 nag-tabs 后链接之后运行。因此,如果您想让 tabs 指令在 ng-repeat post-link 函数运行后执行某些操作,则必须使用 $timeout (如 @charlietfl 建议)或 $watch 或事件来执行代码之后。
你可以尝试添加一个checklast
ng-repeat 元素的指令,该元素可以在以下情况下向您的 tabs 指令发出信号:$last
is true
。信号可以通过事件来完成,或者 checklast 指令可以require
你的 tabs 指令,然后 checklast 指令可以调用 tabs 指令控制器上的方法。
也可以看看https://stackoverflow.com/a/13906907/215945.
注意,这个漂亮的笨蛋来自Peter.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)