几个月前,我按照Angular2 CookBook配方动态表格。在我的Angular2 / Ionic2应用程序中,一切都很顺利,直到几天前我的代码在接缝处破坏了。
context
重构的时间......
困扰我的第一件事是long方法,当我尝试取出<select name="foo">
<option value="1" <?php echo strcmp($_POST['foo'],"1")==0?"selected=\"selected\"":"" ?>>option1</option>
<option value="2" <?php echo strcmp($_POST['foo'],"2")==0?"selected=\"selected\"":"" ?>>option2</option>
或第二个.then()调用中的任何方法,并将它们放入ngOnInit时,我得到一个错误。 “无法读取未定义的'长度'”。
我尝试了什么:
ngOnInit() {
this.doLoadQuestions();
this.leadsForm = this.qcs.toFormGroup(this.questions)
};
doLoadQuestions(){
this.jsondata.load().then((data) => {
this.questionsFromJSON = data
this.questions = this.qs.doGetQuestion(this.questionsFromJSON)
this.leadsForm = this.qcs.toFormGroup(this.questions)
}).then(() =>{
this.doReceiveValues();
this.ems.doGenerateFormErrorObject(this.questionsFromJSON, this.formError);
this.doGenerateAllBiscuitArray(this.questionsFromJSON);
this.doGenerateDisplayController();
})
// I had to load/generate the form in this method, otherwise an error occurs in console
// It would be best if this was moved out of here, but for now it must stay in for it to work.
};
您可能注意到的另一件事是在ngOnInit()中第二次调用this.questions = this.qs.doGetQuestion(this.questionsFromJSON)
。如果我把它拿出来,我会得到和以前一样的错误,“无法读取未定义的'长度'”。
我陷入困境,我正在尝试使我的代码更加模块化,但这是我的组件的第一步,一切都依赖于这种方法。
也许我应该保持原样,但就目前而言,它非常不灵活,对我而言,笨重。
感谢您的帮助