我有一個ng-class
屬性(我沒有自己寫)。它綁定到控制器中的字符串變量。它看起來像:<some-tag ng-class="'indicator_' + $ctrl.stringValue"></some-tag>
。單擊元素後綁定僅更新,儘管控制器中的字符串已更新(角1.5)
當窗口第一次加載 - 它包含正確的數據,但在控制器中更新字符串後 - class
屬性中的值僅在單擊元素後纔會更新(點擊將打開列表,但我不認爲這是相關的)。
我讀過的第一件事是檢查這些情況,是代碼被$scope.$apply
包圍。這是,因爲當我嘗試添加它時 - 我收到一個錯誤,說「$ digest已在進行中」。 尋找$ctrl
和ng-class
信息,我讀了AngularJS component doc和this site,這給了我一些關於這些主題的基本背景。
事情是,我找不到ng-class
與$ctrl
的任何例子。也許它是不相關的,但也許不是:)
我在這個主題中發現一個不相關的問題的例子是:Angular ngClass is not updating my classes even though my condition change as expected。 一般來說,我發現的大多數例子都包括大括號,我不認爲這種情況是相關的,因爲我綁定了一個字符串(也許我誤解了它:))。
我懷疑它可能沒有正確綁定它,我只是不知道爲什麼。
編輯:
繼續搜尋主題後,我不再確信它涉及到ng-class
(所以我編輯的標題爲好)。它看起來更像是一個刷新問題。
我很困惑,爲什麼頁面不刷新,因爲我讀到的每個地方 - 他們說,Angular應該自己調用摘要函數,我不應該干涉。
EDIT2:
我與typeScript
工作,並stringValue
通過從服務的事件更新。但字符串更新 - 所以我不知道這是一個相關的信息來了解問題,但值得一提的:)
Shmool,謝謝你的回答,但在我的情況下 - 'stringValue'不會因用戶操作而更新 - 它會因代碼中發生的事情而更新。 – Yaara
我也編輯了這個問題 - 我正在使用'typeScript',它是相關的.. 我無法重現該問題,因爲我正在處理其他一些服務,並使用其中一個來引發事件。 **但重點是 - **服務引發事件,控制器捕獲它並更新字符串(字符串更新!)。但在此之後 - HTML中的$ ctrl.stringValue'綁定不會更新,直到頁面刷新,並且它不會自行刷新。 – Yaara