Json数据加载速度不够快,无法呈现动态表单

时间:2016-10-06 11:16:33

标签: json angular ionic-framework ionic2 angular-promise

几个月前,我按照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时,我得到一个错误。 “无法读取未定义的'长度'”。

我尝试了什么:

  1. 随处放置console.log以查看数据的来源 jsondata.load()正被带入我的组件。好像是 在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. };
  2. 之后成功加载
  3. ngOnInit的不同组合,构造函数中的调用方法,ngOnChanges以及将jsondata.load方法放在服务中。他们似乎没有任何区别。
  4. 您可能注意到的另一件事是在ngOnInit()中第二次调用this.questions = this.qs.doGetQuestion(this.questionsFromJSON)。如果我把它拿出来,我会得到和以前一样的错误,“无法读取未定义的'长度'”。

    我陷入困境,我正在尝试使我的代码更加模块化,但这是我的组件的第一步,一切都依赖于这种方法。

    也许我应该保持原样,但就目前而言,它非常不灵活,对我而言,笨重。

    感谢您的帮助

0 个答案:

没有答案