在我的my中,我试图通过JSON向表单构建器提供动态表单控件,类似于angular.io中的动态表单教程。我无法操作从http.get()请求返回的JSON数据。我可以console.log整个对象,但如果我尝试记录一个子对象,我得到" undefined"在控制台中。
这是我的组件文件:
export class TestComponent implements OnInit {
dataSource: Observable<any>;
questions: QuestionBase<any>[] = [];
results: QuestionBase<any>[] = [];
constructor(private http: HttpClient) {
this.dataSource = this.http.get('/questions');
}
ngOnInit() {
this.dataSource.subscribe(
data => {
this.results = data['contactInfo'];
console.log(this.results[0].controlType);
this.results.forEach((item: QuestionBase<any>) => {
if(item.controlType == 'text') {
console.log(item.controlType);
this.questions.push(new TextQuestion(item));
}
else if(item.controlType == 'dropdown') {
console.log(item.controlType);
this.questions.push(new DropdownQuestion(item));
}
});
console.log(this.questions);
},
err => {
console.log("Cannot get JSON data. Error Code: %s, URL: %s",
err.status, err.url)
},
() => console.log('Done')
);
}
}
在data =&gt;中{}回调,如果我是console.log(请求),控制台就会显示整个对象。我甚至可以读取模板中的子对象。但是,如果我尝试使用console.log或使用上面代码中的子对象执行任何其他操作,例如forEach()方法,我得到&#34; undefined&#34;在控制台上。我究竟做错了什么?
编辑:以下是JSON代码段:
{
"contactInfo": [
{
"key": "firstName",
"globalLabel": "First Name",
"controlType": "text",
"required": "true",
"order": "1"
},
{
"key": "lastName",
"globalLabel": "Last Name",
"controlType": "text",
"required": "true",
"order": "2"
},
{
"key": "streetAddress",
"globalLabel": "Street Address",
"controlType": "text",
"required": "true",
"order": "3"
}, ...}]
编辑#2更新JSON文件后,我无法重启我的节点服务器&#34; controlType&#34;使用简单的&#34;类型的早期版本。&#34;我认为服务器会自动提供新编辑和保存的文件,但似乎必须重新启动服务器才能执行此操作。问题已关闭