在类中切换2个值[关闭]

问题描述 投票:-2回答:3

我想在一个类中切换2个值。

像这样的东西,

<ion-item *ngFor="let part of partner" class="border_bottom bdr_radius">
<p class="font_c_2 gra_reg" #short (click)="onShowHide(short)" [ngStyle]="{'white-space': whiteSpace}">
  {{part.fsp_partner_location}} 
</p>
</ion-item>

public onShowHide(controlToShow) {

this.render.setStyle(controlToShow, white-space=='normal' ? 'nowrap' : 'normal');

}

上面的代码抛出一个错误:“没有定义白色”

我知道我的格式不正确,任何帮助将不胜感激。

谢谢

javascript angular ionic-framework
3个回答
-2
投票

现在当我知道你的代码时,这就是我要做的:

HTML部分:

<ion-item *ngFor="let part of partner; let i=index" class="border_bottom bdr_radius"> 
<p class="font_c_2 gra_reg" #short (click)="onShowHide(i)" [ngClass]="{'long': selected === i, 'short': selected != i}"> 
{{part.fsp_partner_location}} 
</p> 
</ion-item>

css部分:

.long {
    white-space: normal;
}
.short{
        white-space: nowrap;
}

你的ts档案:

selected = 0;

onShowHide(index: number) {
   this.selected = index;
}

当你点击项目时,它将为它设置normal,其他人将have nowrap


-1
投票

试试这个吧

this.render.setStyle(controlToShow, white-space=='normal' ? 'nowrap' : 'normal');

-2
投票

要在click事件上执行此操作,只需设置和事件处理程序并传递控件。然后chech哪个是你当前的类并应用你想要应用新逻辑的逻辑

Demo here

HTML

  <ion-item *ngFor="let item of items">
    <h3 #text>{{item}}</h3>
    <button ion-button item-right color="light" (click)="onSwitch(text)">Switch Primary / Danger</button>
    <button ion-button item-right (click)="onPrimary(text)">Set Primary</button>
    <button ion-button color="danger" item-right (click)="onDanger(text)">Set Danger</button>
  </ion-item>

TS

  public items: string[] = [
    "Item 1",
    "Item 2",
    "Item 3",
    "Item 4",
    "Item 5",
    "Item 6",
    "Item 7",
    "Item 8",
    "Item 9",
    "Item 10",
  ];

  constructor(public navCtrl: NavController, private render: Renderer2) { }

  public onSwitch(control) {
    if(control.classList.contains('primary')){
      this.render.removeClass(control, 'primary');
      this.render.addClass(control, 'danger');
    }
    else{
      this.render.removeClass(control, 'danger');
      this.render.addClass(control, 'primary');
    }

  }
  public onPrimary(control) {
    this.render.addClass(control, 'primary');
  }
  public onDanger(control) {
    this.render.addClass(control, 'danger');
  }

否则,请使用其他答案之一

© www.soinside.com 2019 - 2024. All rights reserved.