私は、そのアイテムの1つをクリックで選択する必要がある単純なリストを持っています。ただし、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