angular - 如果我们在 Angular 4 中使用 *ngFor,如何在一个实例上触发一个函数

标签 angular object click ngfor

HTML

<mat-toolbar color="primary">
    Angular Material 2 App
</mat-toolbar>
<div class="basic-container">  
     <div *ngFor="let item of names">
       <p>{{item}} {{flag}} {{str}}</p>
       <button (click)='enable()'>Display</button><br>
      <mat-spinner *ngIf="flag" strokeWidth="3" [diameter]="20"></mat-spinner> 
       </div>  
    <span class="version-info">Current build: {{version.full}}</span>
</div>

TS

import {Component} from '@angular/core';
import {VERSION} from '@angular/material';

@Component({
  selector: 'material-app',
  templateUrl: 'app.component.html'
})
export class AppComponent { 
  version = VERSION;
  names = ["hello" , "hIII" , "BYE"];
  flag:boolean=false;
  str='Ar';

  enable() :void {
    this.flag= true;
    this.str = "Arpit";
  }
}

在上面点击显示按钮的代码中,我只想在那个特定的 div 上显示微调器,但因为我使用的是 *ngFor 函数在每个地方都会被调用。

stackbliz url

最佳答案

可以通过在*ngFor中添加索引来解决 working link

在 Component.ts 中

export class AppComponent { 
version = VERSION;
names = ["hello" , "hIII" , "BYE"];
flag:boolean=false;
index : number =0;

 toggle(i) :void {
    if(this.index == i && this.flag){
    this.index =null;
   }else{
     this.flag  = true;
     this.index = i;
   }
 }

在 Html 中

 <mat-toolbar color="primary">
  Angular Material 2 App
   </mat-toolbar>
 <div class="basic-container">  
   <div *ngFor="let item of names;let i= index">
   <p>{{item}}</p>  
   <button (click)="toggle(i)">Display</button><br>
  <mat-spinner *ngIf="i == index && flag" strokeWidth="3" [diameter]="20"> 
    </mat-spinner> 
   </div>  
<span class="version-info">Current build: {{version.full}}</span>

关于angular - 如果我们在 Angular 4 中使用 *ngFor,如何在一个实例上触发一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51960235/

相关文章:

javascript - 如果表单项为空,但用户提交表单,则在 Angular2 表单中显示错误

javascript - 为什么在Angular中不能直接使用console.log?

Angular2、Ionic2 :How to access an array of objects inside another array of objects in typescript?

angular - 如何从 Angular 4 中的 index.html 访问环境常量?

javascript - 有没有办法检查Javascript函数返回对象/数组是否为空?

javascript - for 循环中的 jQuery click() 函数显示意外行为

javascript - 在 JavaScript 中 chop 对象的最快方法

Java:设置和获取字符串的方法

audio - C#避免在按下KeyDown时发出哔哔声?

javascript - 如何根据坐标单击元素以及如何使用 CasperJS 检索元素属性?