英語が正しくない、文法が正しくない場合は、教えてください。ngForでngForの要素を変更する
ngFor要素で<li>
をクリックしてテキストを変更しようとしましたが、クリックイベントが機能しません。
plunkerを適切な例で作成しました。
- で非同期パイプを削除します。
また、私は私のコードと、これは私の手順がいたあなたの情報についてはangular.ioルータコースhere
間の差分をチェックし、行った変更を見ることができますコンポーネント
- 変化ngFor
- 変更英雄変数を取得するには()プロパティにonSelect を終了するには、文字列を「クリック」
hero.name
累積を変更する方法
@Component({
template: `
<h2 (click)="test1()">HEROES</h2>
<ul class="items">
<li *ngFor="let hero of heroes "
[class.selected]="isSelected(hero)"
(click)="onSelect(hero)">
<span class="badge">{{ hero.id }}</span> {{ hero.name }}
</li>
</ul>
`
})
export class HeroListComponent implements OnInit {
get heroes() {
return [
new Hero(11, 'Mr. Nice'),
new Hero(12, 'Narco'),
new Hero(13, 'Bombasto'),
new Hero(14, 'Celeritas'),
new Hero(15, 'Magneta'),
new Hero(16, 'RubberMan')
];
}
test1(){
//alert(1);
}
onSelect(hero: Hero) {
hero.name += 'click';
}
}
更新が
私はgetPropertyメソッドがngForが実行を繰り返しになるだろうことがわかったとき、私はplunker(plnkr.co/edit/を作成しましたが2016/12/14 bkXYuyLtq5OrPoEQpNmC?p =プレビュー)
スケマティックの説明(imageshack.com/i/ponHcO7Vp )
- ng get property()オブジェクトを使用する場合、常に新しいオブジェクトを返すため、最大100回取得されます。
他のルータからページを再入力すると、最大3回だけ繰り返され、すべてのオブジェクトが再生成されます(console.logから、アキュムレータの再計算からの呼び出しを確認できます)ページの要素のいずれかをクリックしてください)
がトリガされ、できるようになりますNgFor再セットのデータを、2
までこれをすることができます、プロパティを取得によって引き起こされていませんこのリンク(jsfiddle.net/w31cqzdj/1/)から、ネイティブなjavascriptのforループと、object.definedPropertyの一度だけ電話する
出力(imageshack。COM/I/porsQYHAp)
と、私は、使用クローム開発ツールをしようとしていた。ここで
は作業バージョンです復元された、なぜ? リンク(https://i.stack.imgur.com/XhVYy.gif)でGIFが表示されます –
あなたは理由があるテキストを削除しました。
要素 –完全に削除すると、クリックイベント後にデータが復元されます。
は、同じ結果に復元されます。 –