我有一個auto-carousel
指令,它通過鏈接元素的子代迭代。AngularJS手錶DOM變化
但是這些孩子還沒有加載到DOM中,因爲他們的ng-if
的表達式還沒有被解析。
如何確保父指令知道它的DOM樹已經發生變化?
<ul class="unstyled" auto-carousel>
<li class="slide" ng-if="name">{{name}}</li>
...
<li class="slide" ng-if="email">{{email}}</li>
</ul>
我可以使用$timeout
但感覺不可靠的。我也可以使用ng-show
而不是ng-if
,但這並不回答問題,也不是我需要的。
根據angularJS文檔,子指令在父指令之前被喜歡。所以ng-if在父指令之前被鏈接。所以解析順序不是你的問題。也許你的數據是異步可用的,所以ng-if在鏈接時沒有被解析。 – Alborz
@Alborz這很有趣。你有鏈接嗎?如果是這樣的話,我有一種感覺,這個指令在兒童元素的模型被填充之前就被鏈接了,我會執行一個測試並回復給你。別忘了我的鏈接! – pilau
@Alborz鏈接功能肯定發生*模型填充後。我甚至使用了額外的'$ scope。$ apply()'。 – pilau