【问题标题】:How to give condition in image tag using angular 6?如何使用角度 6 在图像标签中给出条件?
【发布时间】:2019-04-14 11:39:08
【问题描述】:

我的网页包含,

      <ng-container *ngFor="let horizontal of categories">
            <ng-container *ngFor="let horizontalval of horizontal.items;let i=index">
          <button [ngClass]="{'selected-color' : i==selectedIndex }" 
          [ngStyle]="{'padding-top':horizontal.items[i].title==='Business'?'2.56%':(horizontal.items[i].title==='Plat' ? '2.56%':null)}"type="submit" class="btn1"  [id]="horizontal.items[i].title"
           (click)="changeImage(id);">
           <img [src]= horizontal.items[i].icon alt="image not found" class="icon"/>
           {{ horizontal.items[i].title }}
          </button>
        </ng-container>

我的 ts 文件:

 changeImage(option){
if(option == "Trans"){


    this.imgDefault = 'imgChange';
    console.log("this.imgDefault :",this.imgDefault);
}
 else if(option == "Col"){

    this.imgDefault = 'imgChange1';
    console.log("this.imgDefault :",this.imgDefault1);
}
else if(option == "Business"){
    this.imgDefault = 'imgChange2';
    console.log("this.imgDefault :",this.imgDefault2);
}

}

所以在我的 css 中,我保留了单击按钮时需要更改的图像。

.imgChange{
background-image: url('../assets/Trans_2.png');
color:blue;
 }
.imgChange1{
background-image: url('../assets/Trans_3.png');
color:blue;
 }
 .imgChange2{
background-image: url('../assets/Trans_4.png');
color:blue;
 }

如何在 img 标签中给出条件,以便点击按钮更改图像?

【问题讨论】:

  • 首先,决定如何显示图像。通过 img src 或通过 css 设置背景图片?
  • @Sai,如果你找到了,请接受答案。

标签: html css angular angular6


【解决方案1】:

您应该在div 中添加image,如下所示:-

ts

      imgDefault = 'imgChange'; <-- default;

changeImage(option){
if(option == "Trans"){


    this.imgDefault = 'imgChange';
    console.log("this.imgDefault :",this.imgDefault);
}
 else if(option == "Col"){

    this.imgDefault = 'imgChange1';
    console.log("this.imgDefault :",this.imgDefault1);
}
else if(option == "Business Process Re-engineering"){
    this.imgDefault = 'imgChange2';
    console.log("this.imgDefault :",this.imgDefault2);
}

}

.html

 <ng-container *ngFor="let horizontal of categories">
 <ng-container *ngFor="let horizontalval of horizontal.items;let i=index">
 <button [ngClass]="{'selected-color' : i==selectedIndex }" 
 [ngStyle]="{'padding-top':horizontal.items[i].title==='Business'?'2.56%':(horizontal.items[i].title==='Plat' ? '2.56%':null)}"type="submit" class="btn1"  [id]="horizontal.items[i].title"click)="changeImage(id);">

{{ horizontal.items[i].title }}
 </button>
 </ng-container>  
</ng-container>  

<div [ngClass]="imgDefault"></div>

链接:-https://stackblitz.com/edit/angular6-sqemmd?file=app/app.component.html

【讨论】:

  • 而不是 。你应该使用
  • 感谢您的回复。我也试过了。但我无法获取图像。
  • this.imgDefault 是否在点击时发生更改?
  • 是的,点击按钮时需要更改
  • 检查 div 并检查图像是否正在网络选项卡上加载
【解决方案2】:

您可以根据条件直接添加class名称-您正在尝试从css添加图像替换img标签为div,这将根据class应用呈现背景图像

确保您是否希望您的图片在循环中,如果不将您的 div 移到 *ngFor 之外

<div [class.imgChange]="imgDefault === 'imgChange'" 
     [class.imgChange1]="imgDefault === 'imgChange1'"
     [class.imgChange2]="imgDefault === 'imgChange2'" ></div>

这将根据条件添加您的所有类,div 将呈现img - 希望这能工作快乐编码!!

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签