我有以下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指令之前运行。
在包含nag-tab指令内容的所有指令运行之后,有没有办法让tabs指令运行(ng-repeat或其他可能放在那里的那些)?
答案 0 :(得分:4)
指令可以在三个不同的时间“运行”,因为指令可以具有编译,预链接和后链接方法。 This plunker包含两个示例HTML结构 - 一个使用ng-repeat,一个不使用 - 并且在3个指令函数中的每一个运行时打印出来。
对于ng-repeat示例,我们看到ng-repeat前后链接函数在nag-tabs后链接后运行。因此,如果您希望在ng-repeat后链接函数运行后使用tabs指令执行某些操作,则必须使用$ timeout(如@charlietfl建议)或$ watch或事件来执行代码后面。
您可以尝试向ng-repeat元素添加checklast
指令,当$last
为true
时,该指令可以指示您的制表符指令。信令可以通过事件完成,或者checklast指令可以require
您的tabs指令,然后checklast指令可以调用您的tabs指令控制器上的方法。
另请参阅https://stackoverflow.com/a/13906907/215945。
请注意,漂亮的傻瓜来自Peter。
答案 1 :(得分:0)
你是否控制了tab指令?如果是,则修改其编译阶段以将ng-repeat添加到其子元素。