【问题标题】:Angular 8 : How to send the value from *ngfor to TS fileAngular 8:如何将值从 *ngfor 发送到 TS 文件
【发布时间】:2020-09-20 02:28:47
【问题描述】:

我有代码

<div *ngFor="let a of ABC">
{{a.error}}
</div>

现在我想将 a 的值发送到我的 TS 文件。我想满足一些期望说'a.error == true'然后调用一些函数并将a的值分配给ts文件中的某个变量。

我希望它很清楚。请询问是否需要更多说明

【问题讨论】:

  • 您的 ts 文件已经包含 ABC 数组中包含的该数组中的所有值。所以问“我如何发送价值”真的没有意义。所有值都已存在。
  • 如果我理解,你想在你的模板中定义一个函数应该在某种条件下执行。好吧,这可能是可能的,但请永远不要这样做......

标签: angular angular8 ngfor


【解决方案1】:

如您所说,要与 ts 文件通信,您只需调用您声明的函数

// In your ts.file

someFunction(a: any) {
  // some amazing stuff
  return 'Hello World';
}

在你的模板中

<div *ngFor="let a of ABC">
  {{ someFunction(a) }}
</div>

【讨论】:

  • 我想发送 a 的值而不在 UI 上显示它
  • 那么当你在ngOnInit 中获取它时,为什么不这样做呢?
【解决方案2】:

您可能应该在 TS 文件中循环变量 ABC,然后再将其暴露给 html 模板。请注意这一事实。如果你在 html 中调用一个函数,它会被计算很多次。

例如,以下将执行someFunction 的次数可能超出您的需要。

//.html
<div *ngFor="let a of ABC">
{{someFunction(a)}}
</div>

我建议将您需要在 html 中读取的值创建为不同的 var。 例如。

//.ts
ERR: string[];
ngOnInit() {
  this.ERR = ABC.map(a => someFunction(a));
}

然后在模板中只绑定错误数组

//.html
<div *ngFor="let a of ERR">
    {{a}}
</div>    

【讨论】:

    猜你喜欢
    • 2020-04-22
    • 1970-01-01
    • 2018-03-07
    • 2021-03-24
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多