javascript - 在 Angular2 typescript 中迭代数组

标签 javascript arrays angular typescript

我是 typescript 和 Angular2 的新手,正在学习这个,我遇到了这个问题。我有一个表单,我想显示一组项目的结果,但这些项目每次都在变化,所以我现在不知道返回结果的实际索引。

是这样的

我有这个form.html

<span style="color:red">{{usererror.username}}  </span>
...other items here
<span style="color:red">{{usererror.password}}  </span>

现在在组件中

export class LoginComponent implements OnInit{
 public usererror={
    username:"",
    password:""
  }

  //this function is called after a post request
onLoginError(error:any){

let message= JSON.parse( error._body);
  console.log(error._body); //first log
  console.log(message)  //second log


}

}

从上面的函数中,第一个日志返回以下形式的数组

[{"field":"username","message":"Username cannot be blank."},
  {"field":"password","message":"Password cannot be blank."}]

现在我想在上面的用户错误中分配用户名和密码变量,以便可以显示它们

所以像这样

onLoginError(error:any){

let message= JSON.parse( error._body);
   let message= JSON.parse( error._body);

    for (var i=0; i<message.length; i++){
     this.usererror.message[i].field = message[i].message;  //this fails since the 
         //usererror doesnt have (message[i].field) property

     }
 }

有时返回的结果没有用户名字段,有时没有密码字段。我该如何解决这个问题,我对 Angular2 和 TypeScript 还是新手

最佳答案

使用方括号表示法(object["property"]):

let messages= JSON.parse( error._body);
for (let message of messages){
    if(this.usererror[message.field])
      this.usererror[message.field]=message.message;
}

关于javascript - 在 Angular2 typescript 中迭代数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41503340/

相关文章:

javascript - 非表单元素上的 Angular2 单击事件

angular - 如何在 Angular 的接口(interface)中实现键值对对象?

javascript - 如何在具有多个选择的表单中使用 jquery 设置选定的下拉选项?

javascript - 参数是否传递给函数参数?

Java Arrays.equals() 为二维数组返回 false

javascript - Vue JS 使用数组来过滤另一个数组?

javascript - 如何保存使用 AngularJS 中的 ng-repeat 填充的多个选择框中的值?

javascript - 等待多个 promise 完成

javascript - 为什么回调函数允许我们在 Javascript 中异步执行操作?

php - 如何选择多个复选框并保存到我的数据库中