Angular 以角度动态显示值

Angular 以角度动态显示值,angular,typescript,Angular,Typescript,在我的模板中,仅当item.name===“michael”不正确时,我才需要显示文本“Passed”。我的组件包含来自其父组件的数据courses[]。我有两个接口课程和教师,其中每个课程id都有自己的教师数据 这是我的密码: @Input() courses[]; isRequired = false; ngonInit() { for (const entry of courses ) { this.onCheckData(entry); }

在我的模板中,仅当
item.name===“michael”
不正确时,我才需要显示文本“Passed”。我的组件包含来自其父组件的数据
courses[]
。我有两个接口课程和教师,其中每个课程id都有自己的教师数据

这是我的密码:

  @Input() courses[];
  isRequired = false;
  ngonInit() {
     for (const entry of courses ) {
      this.onCheckData(entry);
    }
  }

  onCheckData(singleList: Courses) {
    this.someService.someObservable(singleList.id).subscribe( item => {
        if (item.name === 'michael') {
            this.isRequired = true; 
         }
        });
       }

  declare interface courses {
      id: number;
      name: string;
      price: number;
}

declare interface Teachers {
  name : string;
  address: string;
}
使用变量
isRequired
设置真/假似乎不起作用。someObservable()正在使用http返回一个
可观察的

<tbody>
    <tr *ngFor="let listing of courses">
      <td>
        {{listing.name}}
      </td>
      <td>
        <span *ngIf="!isRequired"> Passed </span> // not working here
      </td>
</tbody>

{{listing.name}
通过//不在这里工作

您的
所需的
也应该是可观察的

试着这样做:

public isRequired$ = new ReplaySubject<boolean>(1);
而不是一个可观察的市场的美元惯例

<span *ngIf="!isRequired$"> Passed </span>
已通过

如果其中一项具有名称,则将为所有组件设置isRequired

如果名称在列表中,您可以尝试
listing.name==='michael'

<tbody>
    <tr *ngFor="let listing of courses">
      <td>
        {{listing.name}}
      </td>
      <td>
        <span *ngIf="listing.name === 'michael'"> Passed </span> // not working here
      </td>
</tbody>

{{listing.name}
通过//不在这里工作
<tbody>
    <tr *ngFor="let listing of courses">
      <td>
        {{listing.name}}
      </td>
      <td>
        <span *ngIf="listing.name === 'michael'"> Passed </span> // not working here
      </td>
</tbody>