關(guān)于angular 8.1使用過程中的一些記錄
說起來已經(jīng)使用了大概一年半的angular,大概已經(jīng)漸漸習(xí)慣了這個前端框架吧,但是具體的原理和底層的代碼都沒有仔細(xì)的看過。
前陣子以前做的一個項目有了新的需求,而且比較麻煩,講講做的過程中遇到的一些問題
首先是勾選狀態(tài)的保持問題
在模板中思考了很久,用了各種方法,修改傳入值,頁碼改變以后勾選狀態(tài)就是會有奇怪的問題,比如在代碼里明明把選中的給去掉了,但是頁面上還是勾選狀態(tài),最后折騰來折騰去,發(fā)覺操作的對象不對:頁面上的是模板里面的list,就是listpagemodel.list,而我之前一直在操作傳入的list,后面操作對象弄對了,只需要操作listpagemodel.list的狀態(tài)就可以控制頁面上的數(shù)據(jù)。
所以上面給我的經(jīng)驗就是一定要明白頁面上展示的數(shù)據(jù)具體是由哪個對象控制的,對象找對了,控制起來就簡單,對象沒找對,忙活再久也是白干。
第二個就是自己創(chuàng)建的組件問題
sl-upload是我自己封裝的一個組件
這是組件內(nèi)部的代碼,很簡單,就是包含了nz的一個上傳組件,還有一些數(shù)據(jù)的處理
比如上傳之前的判斷大小和類型,還有上傳成功的提示之類的。
之所以自己寫這部分,是因為nzzorro的組件自己雖然有提供大小控制和上傳文件的類型控制,但是限制了以后選中保持以后不會有任何提示。所以就自己封裝一下,加上了提示。
其中遇到的一個不解的問題就是雙向綁定的問題
一開始我單純的以為只要給[fileList]加上小括號就行
[(fileList)]這樣就變成了雙向綁定,實際上并沒有,小括號加上去以后毫無作用,組件內(nèi)部只是接收到了這個fileList
后續(xù)的操作,父組件(嚴(yán)格來講其實包了三層,是祖孫組件了)里面是拿不到子組件對fileList的修改的,因為只是單純的傳入了這個值?,F(xiàn)在要拿子組件對fileList修改后的值,就需要加上輸出,也就是@Output
下圖的那一行代碼
this.fileListChange.emit(this.fileList)
就是輸出用的,只有改變值的時候加上了這一行代碼,才算是完成了輸出
才讓父組件中[(fileList)]中的小括號有了意義,不然加不加小括號都沒影響。
這樣才可以在父組件中拿到經(jīng)過子組件修改后的fileList的值了。
到此這篇關(guān)于angular 8.1使用過程中的一些記錄的文章就介紹到這了,更多相關(guān)angular 8.1使用記錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
原生js實現(xiàn)可兼容PC和移動端的拖動滑塊功能詳解【測試可用】
這篇文章主要介紹了原生js實現(xiàn)可兼容PC和移動端的拖動滑塊功能,結(jié)合實例形式詳細(xì)分析了javascript事件響應(yīng)及頁面元素屬性動態(tài)操作實現(xiàn)滑塊拖動功能的相關(guān)操作技巧,需要的朋友可以參考下2019-08-08JavaScript實現(xiàn)的使用鍵盤控制人物走動實例
這篇文章主要介紹了JavaScript實現(xiàn)的使用鍵盤控制人物走動實例,也可說是一個JS實現(xiàn)的小人走動小游戲,需要的朋友可以參考下2014-08-08JS限定手機(jī)版中圖片大小隨分辨率自動調(diào)整的方法
下面小編就為大家?guī)硪黄狫S限定手機(jī)版中圖片大小隨分辨率自動調(diào)整的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12layui 實現(xiàn)自動選擇radio單選框(checked)的方法
今天小編就為大家分享一篇layui 實現(xiàn)自動選擇radio單選框(checked)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09