Angular2在渲染后单独修改* ngFor行

时间:2016-07-01 21:07:30

标签: javascript typescript angular

我想要通过按钮点击或类似的东西来表示我的转发器的每一行。什么是Angular 2的做法?

提前感谢

<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>

编辑:

所以我添加一个公共布尔“show”并在ngOnInit()阶段初始化它。然后我有一个click事件,它传入对象,然后我按索引递增。

1 个答案:

答案 0 :(得分: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();
}