2016-07-01 8 views
0

リピートされた後、リピートされた各リピーターのボタンをクリックするなどしてアクセスしたいと思っています。これを行う角2の方法は何ですか?Angular2 modify * ngレンダリング後に個別に行する

事前に感謝

<section class="section"> 
 
    <article class="article" *ngFor="let item of slides; let i = index"> 
 
    <figure class="figure" *ngIf="item.show"> 
 
     <img src="{{item.image}}" alt="{{item.description}}"/> 
 
     <figcaption>{{item.description}}</figcaption> 
 
    </figure> 
 
    </article> 
 
    <mySlideShow style="display:block;clear:both;" [aList]="slides">click me</mySlideShow> 
 
</section>

編集:

だから私は、公共のブール "ショー" を追加し、ngOnInit()フェーズ中にそれを初期化。私は次に、オブジェクトを渡すクリックイベントを持って、次にインデックスごとに増分します。

+1

何を変更しますか? – Arg0n

答えて

0

これは明らかなようですが、itemをパラメータとして(click)メソッドに渡すだけです。

<div (click)="onDivClick(item)">Click me!</div> 

このアイテムで何かを変更する場合は、おそらく手動で変更検出を呼び出す必要があります。

constructor(private changeDetectorRef: ChangeDetectorRef) {} 

// ... 

onDivClick(item: ISlide): void { 
    item.description = "some new description"; 
    changeDetectorRef.detectChanges(); 
} 
+0

こんにちは、答えに感謝します。私は、* ngFor外のイベントからアイテムの可視性を切り替えることを望んでいます。私は子供のビューを参照していくつかの記事を参照してくださいが、これは私が行う方法である場合は本当に確信していない – user686483

+0

私は間違っている場合は、角サイクルを修正するために実際に検出を変更する必要がある疑いがあります – misha130

+0

@ misha130、しかし、第1レベルの配列だけでは、第2レベルの記述を変更すると自動的には検出されません。 – rinukkusu