控制台错误:
AddTaskComponent.html:11错误TypeError:无法读取> undefined的属性“名称” 在Object.eval [作为updateDirectives]
html:
<select ng-model="memberlist">
<option ng-repeat="data in memberlist" value="{{data.name}}">{{data.name}}</option>
</select>
组件代码:
ngOnInit() {
this.onGetMember()
}
onGetMember() {
this.helper = this.pagedata.getMemberNames()
this.helper.subscribe(
res => {
// this.memberlist = res.json();
this.memberlist = JSON.parse(JSON.stringify(res));
console.log("from angular component for add task: ");
console.log(this.memberlist);
});
}
数据确实显示在检查器控制台上,但没有出现在下拉列表中。
{_ body:“ [{” name“:” A“},{” name“:” B“},{” name“:” C“}]]”,状态:200,确定:> true,statusText :“确定”,标题:{…},...…
答案 0 :(得分:0)
需要访问_body
属性。
另外,使用可选参数?
可以防止在对象为null时引发异常
<option *ngFor="let data of memberlist._body" [value]="data?.name">{{data?.name}}</option>
答案 1 :(得分:0)
这是因为您从服务中获取的数据格式。解决方案是您必须使服务成为可观察类型。这样您就可以在订阅部分获取json。 在您的情况下,响应如下:
{_body: "[{"name":"A"},{"name":"B"},{"name":"C"}]", status: 200, ok: >true, statusText: "OK", headers: {…}, …}
它已分配给this.memberlist。
尝试this.memberlist = res.json();