把后端返回?cái)?shù)據(jù)為null或者空或者undefined的用斜杠替換
思路:一開始的時(shí)候我是想寫一個(gè)服務(wù),雙循環(huán)數(shù)據(jù),把數(shù)據(jù)轉(zhuǎn)變成斜杠,這樣就減少了在頁(yè)面處理邏輯,后來經(jīng)過同事的建議,還是決定寫一個(gè)指令,因?yàn)樗褂玫倪@個(gè)系統(tǒng)為考核系統(tǒng),里面除了彈窗,幾乎都是用table寫的,所以決定在table上寫一個(gè)指令,遍歷下面所有的td,當(dāng)td綁定的數(shù)據(jù)為null或者空或者undefined的時(shí)候替換成斜杠,這樣就不需要每次都依賴注入一遍.說來慚愧,從事前端9個(gè)月,這是我第一次自己寫指令.加油!
一.? ?遍歷table知識(shí)點(diǎn)
? ? ? ?1. rows 集合返回表格中所有行(TableRow 對(duì)象)的一個(gè)數(shù)組掷贾,即一個(gè) HTMLCollection昌执。
????????????該集合包括 珊擂、 和 中定義的所有行。
? ? ? ? 2.cells 集合返回表格中所有單元格的一個(gè)數(shù)組
二 .? 指令知識(shí)點(diǎn)
? ? 1.scope作用域? ?一招制敵 - 玩轉(zhuǎn) AngularJS 指令的 Scope (作用域) - 技術(shù)風(fēng)暴 - SegmentFault 思否?可以參考這篇文章
三種形式
默認(rèn) false? 從父級(jí)作用域繼承,雙向綁定,改變一方的內(nèi)容,另一方也會(huì)跟著變化
true? ?也是從父級(jí)作用域繼承,和false的區(qū)別在于當(dāng)指令里的數(shù)據(jù)改變時(shí),父級(jí)作用域的數(shù)據(jù)不會(huì)改變,但是父級(jí)作用域改變時(shí),子級(jí)會(huì)發(fā)生改變
{ },可以簡(jiǎn)單的理解為自定義作用域,=表示雙向綁定,@符表示單向綁定,&符綁定函數(shù).
怎么傳參&表現(xiàn)形式
restrict:String膝迎,E(元素)<my-directive></my-directive>
?A(屬性,默認(rèn)值) <div my-directive="expression"></div>
?C(類名)<div class="my-directive:expression"></div>
?M(注釋)<--directive:my-directive expression-->
三. 注意點(diǎn)
1.需要在table表格ng-repert完成后再執(zhí)行指令,簡(jiǎn)單的說就是要數(shù)據(jù)渲染完再執(zhí)行指令,需要在指令里寫timeout
2.還有就是$watch監(jiān)控?cái)?shù)據(jù)變化,在頁(yè)面渲染完成后再去執(zhí)行指令,但是當(dāng)沒有數(shù)據(jù)或者數(shù)據(jù)為空的時(shí)候則不需要執(zhí)行指令
下面是改良版,最近其實(shí)在學(xué)習(xí)dom操作的視頻,但是一開始寫指令的時(shí)候下意識(shí)的就去百度了怎么遍歷table,然后雙循環(huán)被吐槽了,emmmm