我正在嘗試使用bootstrap scollspy來突出顯示由角度中繼器生成的列表項。在角度模型更改後刷新Bootstrap ScrollSpy
我遇到的問題是,我正在從角度控制器刷新滾動插件,然後角度將模型更改應用到視圖。
確保在更新DOM本身(不僅僅是角模型)之後發生scrollspy('refresh')調用的角度方法是什麼?
模板:
<div class="span2" id="addressList">
<ul class="nav nav-tabs nav-stacked affix">
<li ng-repeat="addr in addresses"><a href="#{{addr.id}}">{{addr.id}}</a></li>
</ul>
</div>
控制器:
$scope.httpSuccessCallback = function (data)
$scope.addresses.push(data);
$('[data-spy="scroll"]').scrollspy('refresh'); //calls $('#addressList .nav > li > a')
}
這可能已經說過1,000次了。但是你不想從你的控制器功能中進行DOM操作。你想要做的是創建一個處理所有它的指令。然後使用$ watch來觸發更新來更新它。 –
我沒有在我的控制器中進行任何DOM操作。我試圖在角度生命週期中的適當點更新jQuery插件。似乎像$ watch可能仍然是正確的機制? –
你正在從DOM中選擇一個元素,並綁定事件等等...... *那真的是我的意思是「DOM操作」。 Angular的文檔很好地講述了這一點。您不應該在控制器中引用DOM。 –