Проверьте, начинается ли строка с определенного символа, используя ngIf, и отобразите его - PullRequest
0 голосов
/ 10 июля 2020

Я здесь новичок, и мне нужно решить проблему. Пожалуйста, помогите, заранее спасибо.

Я обычно показываю данные на экране вот так, и он работает каждый раз.

<h3> Kod Bar : {{ article.barcode_no }} </h3>

Но теперь я хочу проверить, используя статью * ngIf if .barcode_no начинается с определенного символа, я хочу, чтобы его сначала удалили, прежде чем отображать его вот так.

<h3 *ngIf=" article.article.indexOf(article.barcode_no) === 'S' ? (article.barcode_no).substr(1) : none "> Kod Bar    : {{ article.barcode_no }} </h3>

Но я продолжаю получать ошибку

ERROR TypeError: Cannot читать свойство indexOf из undefined

Я также пробовал использовать Pipe, но не работал. Пожалуйста помоги. Спасибо.

 <h3 *ngIf=" (article.barcode_no | startsWith : 'S') ? (article.barcode_no).substr(1) : none "> Kod Bar    : {{ article.barcode_no }} </h3>

.

import { Pipe, PipeTransform, Injectable } from '@angular/core';

@Pipe({
    name: 'startsWith'
})

export class AccessProviders implements PipeTransform {

  transform(fullText: string, textMatch: string) : boolean {
      return fullText.startsWith(textMatch);
  }
}

[СПАСИБО ЗА ОТВЕТЫ, РЕБЯТА. ЦЕНУ ВСЕ ОТВЕТЫ! ]

Ответы [ 4 ]

0 голосов
/ 10 июля 2020

Вы можете просто заархивировать это.

{{str.charAt(0) == 'YourChar' ? srt.substring(1): str}};

0 голосов
/ 10 июля 2020

Вы можете попробовать это.

<h3 *ngIf="article.barcode_no.indexOf('S',0) == 0 "> Kod Bar    : {{ article.barcode_no.substring(1) }} </h3>

Демо Stackblitz

0 голосов
/ 10 июля 2020

Попробуйте Обновите трубку, как показано ниже

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'startWith'
})
export class StartWithPipe implements PipeTransform {

  transform(value: any, args?: any): any {
    if(value && typeof(value) === 'string'){
      return value[0] === args;
    }
    return false;
  }

}
0 голосов
/ 10 июля 2020

Прежде всего вы получите эту ошибку, потому что на момент оценки статья еще не установлена. Чтобы избежать этого в шаблоне, вы можете использовать синтаксис вопросительного знака, который будет проверять, можно ли безопасно получить доступ к свойству в то время:

 *ngIf=" article?.article.indexOf(article.barcode_no)

Также вы уверены, что это 'article.article'? Потому что в канале вы используете другое значение, поэтому, если оно не работает, то по другой причине

...