日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

angular 自定义指令参数详解

發布時間:2024/4/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 angular 自定义指令参数详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • restrict:指令在dom中的聲明形式 E(元素)A(屬性)C(類名)M(注釋)
  • priority優先級:一個元素上存在兩個指令,來決定那個指令被優先執行
  • terminal:true或false,告訴angular是否停止執行比高優先級指令低的指令
  • template:兩種形式,一種HTML文本;一個可以接受兩個參數的函數,tElemetn和tAttrs,并返回一個代表模板的字符串。模板字符串必須存在一個根DOM元素
  • templateUrl:兩種形式,一種代表外部HTML文件路徑的字符串;一個可以接受兩個參數的函數,參數為tElement和tAttrs,并返回一個外部HTML文件路徑的字符串
  • replace:模板會被當做子元素插入到調用指令的DOM元素中還是替換該DOM元素
  • scope:默認是false,true是會從父作用域繼承并創建一個新的作用域對象,scope設置為一個空對像{},指令的模板就無法訪問外部作用域了,詞為隔離作用域,有三種方法可以使隔離作用域內的數據同指令外的作用域進行數據綁定,1,@(or @attr)內部可以使用外部作用域變量;2,=(or =attr)雙向綁定;3,&(or &attr)傳遞引用
  • controller:字符或函數,當為字符串時,會以字符串的名字來查找注冊在應用中的控制器的構造函數。我們可以將任意的可以被注入的Angularjs服務傳遞給控制器,在控制器中也有一些特殊的服務可以被注入到指令中,如:controller:function($scope, $element, $attrs $transclude)。$transclude 嵌入鏈接函數會與對應的嵌入作用域進行綁定,transclude鏈接函數是實際被執行的用來克隆元素和操作DOM的函數。指令的控制器和link函數可以進行互換,控制器主要用來提供可以在指令間復用的行為,但鏈接函數只能在當前指令中定義行為,且無法在指令間復用。
  • controllerAs:字符串,設置控制器的別名
  • require:參數可以被設置為字符串或數組,字符串代表另外一個指令的名字,require 會將控制器注入到其值所指定的指令中,并作為當前指令的鏈接函數的第四個參數。require 參數的值可以用下面的前綴進行修飾,這會改變查找控制器時的行為: ??如果在當前指令中沒有找到所需要的控制器,會將 null 作為傳給 link 函數的第四個參數。如果添加了 ^ 前綴,指令會在上游的指令鏈中查找 require 參數所指定的控制器。 ?^?將前面兩個選項的行為組合起來,我們可選擇地加載需要的指令并在父指令鏈中進行查找。如果沒有前綴,指令將會在自身所提供的控制器中進行查找,如果沒有找到任何控制器就拋出一個錯誤。
  • compile (對象或函數):compile 選項可以返回一個對象或函數。如果設置了 compile 函數,說明我們希望在指令和實時數據被放到DOM中之前進行DOM操作,在這個函數中進行諸如添加和刪除節點等DOM操作是安全的。本質上,當我們設置了 link 選項,實際上是創建了一個 postLink() 鏈接函數,以便 compile() 函數可以定義鏈接函數。

轉載于:https://www.cnblogs.com/mliudong/p/4180680.html

總結

以上是生活随笔為你收集整理的angular 自定义指令参数详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。