所以我有一个Typescript组件,其构造函数如下所示:
eamon.white7@gmail.com does not have storage.objects.get access to gcf-upload-us-central1-42327ef0-9b18-406c-9b7e-7b716bb814f8/d84bdea4-ba16-4260-93c8-c46c2d4066f0.zip
,如您所见,它创建了一个字符串数组并将其存储在值中。稍后,我将在html中显示此字符串[],并显示以下代码段
constructor(private http: HttpClient) {
this.http.get('/api/values/users').subscribe(result => {
this.values = result as string[];
}, error => console.error(error));
}
问题是我以后想以JSON格式向字符串数组添加新元素。但是当我写
<tr *ngFor="let value of values; index as i">
<td>
<input [(ngModel)]="value.id" class="form-control" type="text" name="{{value.id}}" />
</td>
</tr>
它与JSON格式不匹配,因此字符串变为:
this.values.push("{id: 1, username: , firstName: , lastName: , token: ,}");
请注意,最后一个值周围有两个qoutes。这样一来,前面提到的* ngFor不会以JSON格式出现,而只是认为这里的第四个对象只是一个常规字符串。 请帮帮我!
答案 0 :(得分:0)
字符串JSON
的格式缺少引号。
尝试以下语法:
this.values.push(JSON.parse('{"id": "1", "username": null,
"firstName": null, "lastName": null, "token": ","}'))
答案 1 :(得分:0)
您必须执行Object.assign()。这是一个示例,它将您返回的值对象与上面具有新元素的新对象合并。
this.values= Object.assign({},this.values,{newElementFieldName: this.newObject});