0

我遇到了一個小問題。我在一個angularjs應用程序中有一個引導標籤集。這些選項卡部分由ng-repeat生成,幷包含綁定到作用域的數據。如何重新加載angularjs示波器數據而不重新綁定視圖

基本上,控制器內:

$scope.data = { ... } // Loaded from a factory 

現在,當我重新加載該數據(通過用新的更換舊的一個)的標籤集將由NG-重複重建和視圖將自動切換到第一個標籤。

有沒有辦法在範圍內替換數據而不重建視圖中的所有內容?

回答

2

您不明確具體的數據以及以何種方式使用哪些數據。 所以這將是一個普遍的答案:

嘗試只更新實際更改的位。例如,不要替換整個對象或數組,而只是更新實際更改的屬性或索引。這樣,只有GUI的相關部分纔會更新。

如果你必須替換對象,你仍然可以幫助角度保持模型中的對象和dom元素之間的連接,以便在表達式中使用「track by」時使用ng-repeat(只有當元素有一些您可以使用的唯一ID)。

另一種選擇:使用一個時間應該只改變恰好一次當第一次加載數據的部分結合:參看「一次性綁定」在https://docs.angularjs.org/guide/expression

+0

Yaaa ......那不是那麼容易。我不能只刷新一部分,因爲這個漏洞可能已經改變了。並且一次性綁定會禁用所有**進一步更新所包含的數據 - 對嗎? – mvmoay 2014-10-01 09:23:06

+0

是的,所有更新將被禁用一次綁定。 哦,還有什麼可能會有所幫助:如果你不能避免有新的對象(而不是保留不變的對象),那麼在任何ng-repeat中使用「track by」,以便角度可以知道哪個對象屬於其中的dom元素,並避免重建選項卡。 – 2014-10-01 10:44:01

+0

Bam,跟蹤了詭計。謝謝你的幫助! :-) – mvmoay 2014-10-01 13:27:55