让内部指令之前外指令angularjs运行(Let inner directives run bef

2019-07-20 20:23发布

我有以下的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>

那我遇到的问题是,标签指令在该NG重复指令之前运行。

有没有什么办法让标签指令,所有涵盖老马标签指令运行的内容的指令后运行(NG-重复或任何其他可能被摆在那里)?

Answer 1:

一个指令可以在“运行”,在三个不同的时间,因为一个指令可以编译,预链接,链接后的方法。 这plunker包含两个示例HTML结构-一个采用NG-重复,一个没有-它打印出每时的3种指令功能的运行。

对于NG重复例子中,我们看到,NG-重复前,后链接功能老马的选项卡后链接后运行。 所以,如果你想拥有的标签指令做运行NG重复链接后功能后的东西,你必须使用一个$超时(如@charlietfl建议)或$手表,或者一个事件,来执行代码后来。

你可以尝试添加checklast指令,这可能意味着你的标签指令时,NG-repeat元素$lasttrue 。 信号可以通过一个事件来完成,或者checklast指令可能require您的标签指令,然后checklast指令可以打电话给你的标签指令的控制器上的方法。 又见https://stackoverflow.com/a/13906907/215945 。

注,在漂亮的plunker来自彼得 。



Answer 2:

你控制标签指令? 如果是这样,您修改其编译阶段的NG-重复添加到其子元素。



文章来源: Let inner directives run before outer directives angularjs