国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解Angularjs 自定義指令中的數據綁定

2024-05-06 15:32:37
字體:
來源:轉載
供稿:網友

有關自定義指令的scope參數,網上很多文章都在講這3種綁定方式實現的效果是什么,但幾乎沒有人講到底怎么使用,本篇希望聊聊 到底怎么用 這個話題。

一. 自定義指令

自定義指令,是 Angularjs 用來實現組件化的方式,相比于 React Vue 的組件化方式,它真的很復雜,自定義指令太重了,它暴露了太多可供定制的參數,以至于普通的開發者完全不知道要用它來做什么而將其束之高閣,畢竟一般的業務邏輯通過controller和service就已經可以完成了。

自定義指令在 Angularjs 項目中主要有兩大用途:

1.封裝指定組件的DOM操作

Angularjs 期望的開發方式是將DOM的操作盡可能封裝在自定義指令中,這樣對于局部變量的操作會更容易加入到Angular自己的生命周期中。

2.組件化

Angularjs 靠自定義指令實現組件化。諸如你在 React 和 Vue 中看到的類似于 , 這樣的自定義標簽,或是父級子級傳值所使用的 prop ,又或者是標記組件自身狀態的 state ,在 Angularjs 中全部都是通過自定義指令來實現的。

二. 數據綁定的形式

自定義指令在定義后,需要在html文件中編寫,最常用的方式是將其書寫為 標簽屬性。 當使用自定義指令時,常常需要將一個變量的值從controller傳遞至directive中,此時需要在 scope 屬性中進行變量綁定設置, Angularjs 提供了3種不同的綁定方式(實際上也可以直接傳遞True),如下所示:

scope: {  infiniteScroll: '=', // 將infiniteScroll同父級controller中的指定對象雙向綁定  onSend: '&', // 從父級獲取一個變量的引用,常用作方法調用  fromName: '@' // 從父級獲取值后便只在本地作用域生效}

關于三種綁定方式使用的方法,網上可以搜到非常多的文章,本篇不再贅述,今天我們只來詳細看一下這幾種方式的使用場景和區別。

2.1 @綁定

@綁定 可以轉移常量賦值的位置,常用于為自定義封裝組件暴露一個可設定常量參數的接口。 這種綁定方式的意義,在于從自定義指令外部(一般是從html頁面上綁定一個常量或控制器中的變量)獲取一個局部變量的值。

實際場景:

例如我們封裝了一個分頁組件,其中指令局部作用域中的 displayPaginationNums 屬性用于決定分頁組件的頁碼欄顯示多少個按鈕,然后把剩余的按鈕收起來并添加 ... 按鈕,這是一個很常見的需求。

不使用@綁定

不使用@綁定,完全可以做到,只需要在link函數里,初始化為其賦值即可。

link:function(scope, elements, attrs){    scope.displayPaginationNums = 5;//用于決定分頁導航欄最多可顯示幾個數字 },            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 镇沅| 岑巩县| 上杭县| 东兰县| 赤壁市| 宁陕县| 辉县市| 广元市| 玛多县| 望谟县| 秦安县| 肥乡县| 精河县| 大余县| 肥西县| 晋宁县| 海淀区| 阳春市| 晋中市| 临桂县| 大英县| 水富县| 曲麻莱县| 临西县| 凌海市| 钟山县| 泌阳县| 东安县| 灌云县| 特克斯县| 东莞市| 三都| 红原县| 讷河市| 临泽县| 碌曲县| 晋州市| 宁城县| 哈密市| 翁源县| 石台县|