首页 > 解决方案 > HTML5 没有分离两个对象

问题描述

无法显示两个对象

this._formsServices.fetching(this._route.snapshot.paramMap.get('id')).subscribe(post => {
          this.field = this._formsServices.form;
          let comma: any;
          this.field.forEach(option => {
            if (option.optionEn) {
              this.options = []; <-----
              comma = option.optionEn.split(',');
              for (const key in comma) {
                if (comma.hasOwnProperty(key)) {
                    this.options.push({ label: comma[key], value: option.fieldType });
                }
              }
            }
          })
        });

输出控制台是正确的,但在 HTML5 中没有显示这总是关注最后一个对象

(2) [{…}, {…}]
0: {label: "name1", value: "1"}
1: {label: "name1", value: "1"}
length: 2
__proto__: Array(0)
forms.component.ts:91 
(2) [{…}, {…}]
0: {label: "name2", value: "6"}
1: {label: "name2", value: "6"}

标签: arraysangulartypescriptngfor

解决方案


这是因为您正在擦除this.options每个循环中的数据。在第一个循环中,您将这两个值推送到0: {label: "name1", value: "1"} 1: {label: "name1", value: "1"}数组中,在第二个循环中,您正在创建一个新数组this.options = [];。删除这一行,应该可以工作。


推荐阅读