gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

淺析Angular中怎么結合使用FormArray和模態框

怎么結合使用FormArray和模態框?下面本篇文章給大家介紹一下Angular的FormArray和模態框結合使用的方法,希望對大家有所幫助!

淺析Angular中怎么結合使用FormArray和模態框

業務場景

使用FormArray制作動態表單。每創建一個表單,頁面就新增一個input顯示表單填寫的標題,點擊編輯再跳轉到點擊表單的填寫內容。【相關教程推薦:《angular教程》】

    // 封裝獲取modelList     get modelList() {         return this.formGroup.get('modelList') as FormArray     }     constructor(private fb: FormBuilder) {}     ngOnInit() {         // 一開始初始化arr為空數組         this.formGroup = this.fb.group({             // 內部嵌套FormControl、FormArray、FormGroup             modelList: this.fb.array([])         })     }     // 模態框構造內部的表單     function newModel() {         return this.fb.group({             modelName: [''],             // 可以繼續嵌套下去,根據業務需求         })     }     // 省略模態框部分代碼     // 傳遞到模態框的FormArray     selectedType: FormArray
登錄后復制

表單列表

淺析Angular中怎么結合使用FormArray和模態框

表單詳情【模態框】

淺析Angular中怎么結合使用FormArray和模態框

<form [FormGroup]="formGroup">     <div FormArrayName="modelList">         <ng-container *nfFor="let item of modelList.controls;let i = index" [FormGroupName]="i">             <nz-input-group                 [nzSuffix]="suffixIconSearch"               >                 <input type="text" nz-input formControlName="modelName"/>               </nz-input-group>               <ng-template #suffixIconSearch>                 <span                   nz-icon                   nzType="edit"                   class="hover"                   (click)="showModal(i)"                 ></span>               </ng-template>         </ng-container>     </div> </form> <nz-modal   [(nzVisible)]="isVisible"   nzTitle="Model"   [nzFooter]="modalFooter"   (nzOnCancel)="handleCancel()"   (nzOnOk)="handleOk()" >   <ng-container *nzModalContent>     <form nz-form [formGroup]="selectedType">       <nz-form-item>         <nz-form-label nzRequired>Model Test</nz-form-label>         <nz-form-control>           <input             type="text"             nz-input             placeholder="請輸入ModelName"             formControlName="modelName"           />         </nz-form-control>       </nz-form-item>       <nz-form-item>         <nz-form-control>           <product-config></product-config>         </nz-form-control>       </nz-form-item>     </form>   </ng-container>   <ng-template #modalFooter>     <button *ngIf="!isNewModel" nzDanger nz-button nzType="default" (click)="handleDelete()">刪除</button>     <button *ngIf="isNewModel" nz-button nzType="default" (click)="handleCancel()">取消</button>     <button nz-button nzType="primary" (click)="handleOk()">保存</button>   </ng-template> </nz-modal>
登錄后復制

由于這種模態框比較特殊,割裂了表單的FormGroup之間的關系,在點擊的時候需要傳遞參數到模態框顯示部分值,如果單純傳遞參數使用this.modelList.at(index)獲取實體到模態框上進行賦值修改,在模態框點擊保存后會發現修改的值沒有在表單更新,而表單上對input值修改發現可以影響到模態框的內容。

但是模態框新增的表單卻可以響應到頁面中去。

原錯誤代碼思路

  • 點擊編輯后,將點擊的FormArray的元素傳遞給一個臨時變量 this.selectedType = <FormGroup>this.modelList.at(index);,并且對模態框表單傳值。

  • 模態框點擊保存再將原FormArray的值重新替換

this.modelList.removeAt(this.modelIndex) this.modelList.insert(this.modelIndex, this.selectedType)
登錄后復制


  • 點擊新增,創建一個新的FormGroup對象

  • 保存添加push到原頁面的FormArray中

newModelType(): FormGroup {     return this.fb.group({       modelName: ['', Validators.required],       configList: this.fb.array([]),     });   } // ...省略 // 模態框顯示 show() {     this.isVisible = true     this.selectedType = this.newModelType(); } // 保存 save() {     this.isVisible = false     // 原頁面FormArray     this.modelList.push(this.selectedType); }
登錄后復制

最后發現這種寫法只能夠單向改變,頁面外input修改值會影響到模態框,但是模態框的值改變保存卻讓外部沒有更新。通過console方式查看頁面的FormArray內部參數發現其實是有改變的,只是angular沒有檢測到。這個時候判斷沒有發生響應的原因一般是沒有觸發angular檢測機制,仔細查看文檔發現有一行很重要 angular文檔在最下面寫著

淺析Angular中怎么結合使用FormArray和模態框

原本第一次閱讀的時候,覺得我遵守了這種原則,因為在編輯的時候,我選擇了操控原FormArray進行元素刪除和插入,是遵循了這種規則,但是實際上在模態框賦值就已經違反了這種原則,我在賦值的時候拿了FormArray的元素實例賦值給模態框的臨時變量,然后更改實例的值,又重新刪除插入,本質上我操作的是同一個實例,所以angular沒有檢測到發生變化【雖然值發生改變】

淺析Angular中怎么結合使用FormArray和模態框

所以正確的做法是啥??

在賦值的地方不能偷懶,仍然要重新創建新對象,再拿原對象的賦值。【相當于深拷貝】

      this.selectedType = this.newModelType();       const old = this.modelList.at(index);       this.selectedType.setValue({         'modelName': old.get('modelName').value     })
登錄后復制

這時候就可以正常更新了。

總結

其實查到最后本質上還是回歸文檔。在排查錯誤也走了很多坑,而且國內基本沒什么angular的文章,還得靠外網論壇去找問題。

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
岛国毛片在线播放| 日韩国产精品毛片| 亚洲国产精品无码观看久久| 亚洲天堂网站在线| 91女神在线观看| 午夜久久久精品| 男女男精品视频站| 五月天婷婷影视| 国产高清精品软男同| 99中文字幕在线| 神马午夜伦理影院| 国产在线观看欧美| 日本午夜激情视频| 欧美视频在线免费播放| av天堂永久资源网| 超碰av在线免费观看| 高潮一区二区三区| 手机精品视频在线| 国产av熟女一区二区三区| 老司机激情视频| 国产3p露脸普通话对白| 亚洲午夜精品久久久久久人妖| 日韩黄色片在线| 99久久久无码国产精品6| 黄色动漫在线免费看| 一区二区三区 日韩| 欧美国产日韩另类| 国产免费黄色小视频| 亚洲精品怡红院| 九九久久九九久久| 欧美 国产 日本| 中文国产在线观看| 黄色一级片播放| 国产精品igao网网址不卡| 亚洲最新免费视频| 日本一本二本在线观看| 五月花丁香婷婷| 俄罗斯av网站| 国产精品av免费| 91最新在线观看| 国产婷婷一区二区三区| 亚洲a级黄色片| 黑森林福利视频导航| 国产盗摄视频在线观看| 男女爽爽爽视频| 欧美乱大交xxxxx潮喷l头像| 久久撸在线视频| 欧美三级一级片| 成年人视频大全| 日本 片 成人 在线| 久色视频在线播放| 国产乱人伦精品一区二区三区| 五月天婷婷激情视频| 成人一区二区免费视频| 黄色网址在线免费看| 成人不卡免费视频| wwww.国产| 国产wwwxx| 国产一区视频免费观看| 成年人视频观看| 久在线观看视频| 91av资源网| 人人妻人人添人人爽欧美一区| 日本黄色a视频| 色中文字幕在线观看| 日本不卡一区二区在线观看| 毛葺葺老太做受视频| 欧美色图色综合| 亚洲中文字幕无码不卡电影| 97超碰青青草| 国产女女做受ⅹxx高潮| 欧美啪啪免费视频| av免费在线播放网站| 日韩 欧美 高清| 伊人影院综合在线| 涩多多在线观看| 肉大捧一出免费观看网站在线播放| 少妇熟女一区二区| 国产奶头好大揉着好爽视频| 在线视频日韩欧美| 97超碰国产精品| www.中文字幕在线| 国内外成人免费在线视频| 粉色视频免费看| 免费观看国产视频在线| 欧洲精品一区二区三区久久| 国产精品后入内射日本在线观看| 青青视频在线播放| xxx国产在线观看| 国产在线观看欧美| 激情综合网婷婷| 亚洲自拍第三页| 男女超爽视频免费播放| 亚洲高清在线免费观看| www.污网站| 国产视频九色蝌蚪| 男人的天堂最新网址| 成人国产在线看| 欧美 激情 在线| 人人妻人人澡人人爽精品欧美一区| 99热这里只有精品免费| 污污视频网站免费观看| 日韩专区第三页| 亚洲免费一级视频| 黄色国产一级视频| 九九九九九九九九| 国自产拍偷拍精品啪啪一区二区| 欧美大尺度做爰床戏| 国产精彩视频一区二区| www.com污| 免费裸体美女网站| 男同互操gay射视频在线看| 四虎永久在线精品无码视频| 五月天男人天堂| av视屏在线播放| 国产精品69久久久| 亚洲 欧洲 日韩| 久久久精品高清| 久久美女福利视频| avav在线播放| 4444亚洲人成无码网在线观看| 国产欧美高清在线| 日本在线xxx| 亚洲色婷婷久久精品av蜜桃| 小早川怜子一区二区三区| 国产a级片免费观看| 日本韩国欧美在线观看| 大荫蒂性生交片| 无码人妻精品一区二区蜜桃百度| 亚洲a级黄色片| 浓精h攵女乱爱av| 另类小说第一页| 亚洲最大成人在线观看| 亚洲 中文字幕 日韩 无码| 男人亚洲天堂网| 免费欧美一级视频| 日日碰狠狠躁久久躁婷婷| a在线视频观看| 国产精品第12页| 九色91popny| 中文字幕 日韩 欧美| 老司机久久精品| 在线成人免费av| 国产一级不卡视频| av免费看网址| 国产性xxxx18免费观看视频| 日韩亚洲在线视频| 亚洲男人天堂av在线| 国产精品99久久久久久大便| 青青草影院在线观看| 国产精品igao激情视频| 国产不卡一区二区视频| 亚洲中文字幕无码专区| 国产视频在线视频| 久久久福利影院| 可以看毛片的网址| wwwwww.色| 手机看片日韩国产| 丰满人妻中伦妇伦精品app| 欧美自拍小视频| www.日本久久| 国产视频九色蝌蚪| www.欧美激情.com| 欧美三级在线观看视频| 亚洲精品手机在线观看| 日本精品久久久久久久久久| 成人观看免费完整观看| 樱花草www在线| 成人av一级片| 今天免费高清在线观看国语| 国产91对白刺激露脸在线观看| 五月天婷婷影视| www国产精品内射老熟女| 国内国产精品天干天干| 男人天堂新网址| 免费精品99久久国产综合精品应用| 伊人再见免费在线观看高清版 | 婷婷激情5月天| 男人天堂av片| 国产高清av片| 国产精品亚洲a| 2018国产在线| 欧美 日韩 国产 在线观看| 日本在线观看a| 成人免费网站入口| 日本女人高潮视频| av网站在线不卡| 无码人妻精品一区二区三区66| 国产又粗又大又爽的视频| 久草青青在线观看| 欧美成人高潮一二区在线看| avove在线观看| 伊人成人222| 在线观看免费的av| 毛片av免费在线观看| 欧美精品99久久| 国产精品一线二线三线| 日韩精品在线观看av| 国产日韩欧美大片| 亚洲欧美日韩不卡|