今天在写一个动态表单,表单的内容根据headArr这个数组对象来动态创建,一开始有几个表单,当其中一个表单有值的时候,会把剩余的表单显示出来,我采用的是下面的方法
?
this.validateAddForm.valueChanges.subscribe(data => {
? ? ? if (data.model.length > 0 ) {
? ? ? ? this.headArr = [
? ? ? ? ? { text: "基础信息", value: addBaseData },
? ? ? ? ? { text: "资产信息", value: addCapitalData },
? ? ? ? ? { text: "设备基本信息", value: addDeviceBaseData },
? ? ? ? ? { text: "保修、大小修信息", value: addGuaranteeData },
? ? ? ? ? { text: "制造商信息", value: addManufacturerData },]
? ? ? }
? ? })
?
valueChanges方法,但是我发现表单在输入值的时候一直在重新渲染,导致无法输入,还因为是angular的这个方法本身的问题,直到自己发现,在所有表单出来之后,它还是会执行这个函数,执行这个判断,表单就会重新创建,导致上面的问题,加一个条件就好
?
this.validateAddForm.valueChanges.subscribe(data => {
? ? ? if (data.model.length > 0 && this.headArr.length <= 1) {
? ? ? ? this.headArr = [
? ? ? ? ? { text: "基础信息", value: addBaseData },
? ? ? ? ? { text: "资产信息", value: addCapitalData },
? ? ? ? ? { text: "设备基本信息", value: addDeviceBaseData },
? ? ? ? ? { text: "保修、大小修信息", value: addGuaranteeData },
? ? ? ? ? { text: "制造商信息", value: addManufacturerData },]
? ? ? }
? ? })
?
第二个问题就是用angular的ng-zorro库的表格的时候,创建数据之后无法立即显示出来,但是下面的分页的总数却可以,直到看到最后面
需要按照图中的方式增加数据才行?
|