【问题标题】:unable to assign a value in ngFor loop: cannot assign to readonly property of object无法在 ngFor 循环中分配值:无法分配给对象的只读属性
【发布时间】:2019-09-26 01:35:17
【问题描述】:

temp.html 代码

<div>
<div>{{status}}</div>
</div>





 <table>
    <tr *ngFor="let d of list">
               <td>{{d.desc}}</td>
    </tr>
 </table>

d.desc 有值 :submitted,pending,partial 我想要如果 d.desc 处于挂起状态,状态应该更改为挂起。我不想在 ts 文件中循环或过滤 ts 文件有变量

public status:string="ok";
public list:any=[{"desc":"submitted"},{"desc":"pending"},{"desc":"partial"}]

我正在尝试,但无法分配给对象的只读属性

【问题讨论】:

  • 可以添加/显示 ts 文件吗?
  • 你的.ts是什么?
  • ts 有可变的公共状态:string="ok";公共列表:any=['submitted','pending','partial'] 我正在从 api 获取数据所以我无法共享 json 等
  • 我也在尝试 {{updateStatus(d.desc)}} 但得到同样的错误,updateStatus(desc:string){if(desc=='pending')this.status='pending' }}

标签: javascript angular typescript angular6 angular7


【解决方案1】:

你不能直接实现!但是您仍然可以使用函数并通过传递状态从 html 调用该函数。 我为此创建了一个堆栈闪电战!看看吧! https://stackblitz.com/edit/angular-a7bxve

在html中...

<table>
   <tr *ngFor="let d of list">
      <td>{{showStatus(d.desc)}}</td>
   </tr>
</table>

在 ts 文件中...

showStatus(status) {
   this.status = status;
}

【讨论】:

  • 谢谢哥们,问题出在我的 ts 文件状态属于接口,当我将接口更改为类时它工作了
猜你喜欢
  • 2021-06-30
  • 2018-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-12
  • 2019-04-27
  • 2017-12-18
相关资源
最近更新 更多