Angular ngIf ตรวจสอบว่าตัวแปรขึ้นต้นด้วยอักขระที่ระบุใน component html [ซ้ำ] หรือไม่

Aug 17 2020

ขณะนี้ฉันมีสิ่งนี้:

<div *ngIf="name !== '@name1'>
  Show something
</div>

แต่ฉันต้องการเปลี่ยนเพื่อตรวจสอบว่าค่าชื่อ var ขึ้นต้นด้วยอักขระเฉพาะเช่น @ หรือไม่

ฉันจะทำเช่นนี้ได้อย่างไร?

คำตอบ

1 Alexis Aug 17 2020 at 16:57

ใช้startWithวิธีการเช่นนี้

<div *ngIf="name.startsWith('@')">
  Show something
</div>

และหากคุณต้องการตรวจสอบว่าสตริงไม่ได้ขึ้นต้นด้วย "@" เพียงแค่เพิ่ม "!" ชอบ*ngIf="!name.startsWith('@')"

1 VivekJain Aug 17 2020 at 17:08

คุณสามารถใช้indexOfวิธีการรับดัชนีเริ่มต้นของตัวละครของคุณและถ้ามันเป็น 0 หมายความว่ามันเป็นจริงอื่นเท็จ

เช่นด้านล่าง.

<div *ngIf="name.indexOf('@name1') === 0">
   it's start with @name1
</div>

<div *ngIf="name.indexOf('@name1') !== 0">
  it's not start with @name1
</div>
1 yanesof__ Aug 17 2020 at 19:06

คุณสามารถเพิ่มรหัสนี้ภายในคอมโพเนนต์:

export class NameComponent implements OnInit {

public isNameContainAt = false;
public name = 'name';
constructor() { }

ngOnInit() {
if (this.name.startsWith('@') == true) {
  this.isNameContainAt = true;
}

}

}

จากนั้นในเทมเพลต:

<div *ngIf="!isNameContainAt">

แสดงบางสิ่งบางอย่าง