我有一個簡單的列表,需要點擊一個它的項目。但是,每隔x秒,列表就會「刷新」,而選擇似乎會丟失。如何在數組更新時保留* ngFor中的類?
要將選擇添加回新創建的元素,我引入了setTimeout,但似乎具有「閃爍」效果。
setInterval(() => {
this.locations.forEach((o, i, a) => a[i] = a[i] + 's'); // update locations
setTimeout(() => {
if (this.selectedLocationID) document.getElementById(this.selectedLocationID).classList.add('selectedLocation');
}, 0);
}, 1000);
如何防止在plunk中看到的「閃爍」?
權。一般來說,除非必要,否則不要直接操縱DOM。即'document.getElementById(locationID).classList.add('selectedLocation')'真的很糟糕。 '[ngClass]'是要走的路。 –
更清潔。謝謝。我的印象是,我可以互換地使用[ngClass]和[class.selectedLocation],後者給出了「表達從一開始就改變了」的錯誤。 – dexter