亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

AngularJS Component詳解

2024-04-27 15:08:13
字體:
來源:轉載
供稿:網友

現在比較火的前段JS框架像 VUE,REACK,ANGULAR,這三種框架都有共同的特點那就是,雙向數據綁定,組件化開發。而在angular1.5的版本之前,都是以directive作為組件化的形式,而directive本身是一個指令,而并非是一個組件,所以它并不能很好的承擔組件這一個職責,所以google在angular1.5的版本中推出了component組件,用于承擔應用之中組件化開發的重擔,那么component到底是如何工作的?又應該如何使用呢?我們將在這一章中詳細的探究一下component組件的使用方式。

在AngularJS中,Component比diective更適合于基于組件的開發形式。

先來看一個比較簡單的Component事例。

index.html

<!DOCTYPE html><html lang="en" ng-app="ComponentTestApp"><head> <meta charset="UTF-8"> <title>Document</title></head><body ng-controller="MainCtrl as ctrl"> <h3>hero</h3> <br> <hero-detail hero='ctrl.hero'></hero-detail> <script src="js/angular.js"></script> <script src="js/index.js"></script> <script src="js/heroDetail.js"></script></body></html>

在index.html中我們定義了一個 hero-detail 標簽,這個標簽的聲明方式與 directive 相似 , 注意在這個標簽中定義了一個屬性 hero-detail , 這個定義的屬性是做什么用的那?我們接著往下看

index.js

(function(angular){ angular.module('ComponentTestApp',[]) .controller('MainCtrl',function(){ this.hero = { name:'Sunday' } });})(angular);

在index.js中我們聲明了這個controller,并且在controller中我們寫了這么一行代碼

this.hero = { name:'Sunday' }

相信細心的小伙伴已經看出來了,沒錯,這里對應我們在index.html中聲明的屬性 hero='ctrl.hero' 是component中通信的關鍵。

heroDetail.html

<h1>HeroName: {{$ctrl.hero.name}}</h1>

在 heroDetail.html 中我們把從index.html中傳輸過來的值展示出來。

heroDetail.js

(function(angular){ function HeroDetailController(){ } angular.module('ComponentTestApp') .component('heroDetail',{ templateUrl:'views/heroDetail.html', controller:HeroDetailController, bindings:{ hero:'=' } });})(angular);

在heroDetail.js 中 , 我們聲明 heroDetail 的 component ,這里要注意 在index.html中以橫杠分離展示的標簽,在js代碼中需要使用駝峰標示展示。其中的 : bindings 對象,表示 component 之中通訊的協議。

現在是頁面中的展示效果: 這里寫圖片描述


在我們使用 bindings 進行數據綁定的時候 , 官方并不推薦我們使用 “=” 進行數據綁定, 因為“=” 是一種雙向的數據綁定,這就意味著我們在 component中去修改 數據的時候,在它的父組件中的值也會被修改 。 官方推薦我們使用 “< ” 進行單向的數據綁定,值得注意的是 就算我們使用的是 “<” 因為在父組件和組件作用域都是引用同一個對象的,因此如果要更改組件中的對象屬性或數組元素,父組件仍將反映該更改。


OK,介紹完了 數據的綁定,那么Component與父組件方法之間的綁定又是如何進行的那 ? 讓我們來看下面這個例子

index.html

<!DOCTYPE html><html lang="en" ng-app="ComponentTestApp"><head> <meta charset="UTF-8"> <title>Document</title></head><body ng-controller="MainCtrl as ctrl"> <hero-detail on-log="ctrl.log(text)"></hero-detail> <script src="js/angular.js"></script> <script src="js/index.js"></script> <script src="js/heroDetail.js"></script></body></html>

index.js

(function(angular){ angular.module('ComponentTestApp',[]) .controller('MainCtrl',function(){ this.log = function(text){ console.log("輸出的內容為: " + text); } });})(angular);

heroDetail.html

<input type="text" placeholder="被輸出的內容" ng-model="text"><br><button ng-click="onLog()">outputLog</button>

heroDetail.js

(function(angular){ function HeroDetailController($scope){ $scope.text = ''; var ctrl = this; $scope.onLog = function(){ ctrl.onLog({text:$scope.text}); } } angular.module('ComponentTestApp') .component('heroDetail',{ templateUrl:'views/heroDetail.html', controller:HeroDetailController, bindings:{ onLog:'&' } });})(angular);

在代碼中我們通過 “&” 符號去綁定了一個方法 onLog() 該方法接收一個 text 參數 , 需要注意的是,在參數進行傳遞的時候,是以json的形式進行傳遞的 。 這樣我們在點擊 outputLog按鈕的時候,就會輸出我們在input中輸入的內容。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性猛交视频| 国产69精品久久久久99| 亚洲美女av黄| 国产福利精品av综合导导航| 国产欧美一区二区三区久久人妖| 欧美在线观看视频| 久久亚洲精品一区二区| 91精品视频在线看| 欧美亚洲另类视频| 久久电影一区二区| 久久精品国产欧美亚洲人人爽| 成人黄色av网| 日韩在线观看免费av| 亚洲新声在线观看| 伊人久久大香线蕉av一区二区| 色综合天天狠天天透天天伊人| 77777亚洲午夜久久多人| 欧美激情视频在线免费观看 欧美视频免费一| 欧美又大粗又爽又黄大片视频| 久久免费少妇高潮久久精品99| 精品一区二区电影| 欧美视频免费在线观看| 日韩欧美成人精品| 91精品国产高清久久久久久91| 午夜精品久久久久久99热| 中文字幕在线看视频国产欧美在线看完整| 亚洲xxxx视频| 久久99国产精品自在自在app| 亚洲女人天堂视频| 青草成人免费视频| 亚洲欧美日韩另类| 欧美黑人极品猛少妇色xxxxx| 国产精品一区二区女厕厕| 国产精品91视频| 国产精品wwww| 国产精品高清网站| 亚洲人成网7777777国产| 国产精品视频最多的网站| 欧美一级视频免费在线观看| 国产欧美日韩专区发布| 亚洲影院色在线观看免费| 国产成人一区三区| 亚洲国产私拍精品国模在线观看| 中文字幕在线日韩| 日韩精品免费电影| 欧美日韩国产一区二区三区| 亚洲成人精品视频| 国产国语刺激对白av不卡| 日韩精品中文字幕在线观看| 亚洲综合在线做性| 清纯唯美亚洲激情| 欧美富婆性猛交| 日韩在线中文字| 国产美女久久精品| 麻豆成人在线看| 中文字幕精品—区二区| 爱福利视频一区| 欧美国产乱视频| 国产aⅴ夜夜欢一区二区三区| 国产成人久久精品| 国产精品一区二区三区久久久| 亚洲最新av在线网站| 成人久久一区二区| 亚洲日本aⅴ片在线观看香蕉| 日韩av网址在线观看| 亚洲**2019国产| 日日狠狠久久偷偷四色综合免费| 日韩精品久久久久久久玫瑰园| 久久色在线播放| 日韩精品在线视频美女| 国产精品久久久久免费a∨| 91精品久久久久久综合乱菊| 欧美日韩中文字幕| www日韩欧美| 久久天天躁狠狠躁夜夜躁2014| 日韩久久精品电影| 日韩av电影中文字幕| 国内精品模特av私拍在线观看| 久久久久国产精品免费| 日本一区二区在线免费播放| 亚洲男人天堂2024| 欧美日韩在线免费| 亚洲视频日韩精品| 成人黄色免费在线观看| 国产精品午夜一区二区欲梦| 欧美一级黑人aaaaaaa做受| 在线观看精品自拍私拍| 久久久女人电视剧免费播放下载| 深夜福利日韩在线看| 久热精品视频在线观看一区| 91亚洲va在线va天堂va国| 成人在线视频福利| 国产主播在线一区| 欧美极品美女视频网站在线观看免费| 情事1991在线| 日韩视频第一页| 久久久97精品| 国产成人精品免费久久久久| 91九色蝌蚪国产| 国产成人激情小视频| 欧美成人性色生活仑片| 91精品国产91久久久久久吃药| 久久久久久国产精品三级玉女聊斋| 欧美激情视频给我| 中文字幕亚洲一区二区三区五十路| 亚洲www在线| 亚洲国产日韩欧美在线动漫| 亚洲精品小视频| 日韩精品高清在线观看| 国产日韩在线免费| 成人女保姆的销魂服务| 一区二区欧美亚洲| 91欧美激情另类亚洲| 亚洲乱亚洲乱妇无码| 热久久美女精品天天吊色| 久久精品色欧美aⅴ一区二区| 欧美高清第一页| 大胆人体色综合| 91精品国产91久久久久福利| 色爱av美腿丝袜综合粉嫩av| 亚洲第一中文字幕在线观看| 日韩黄色在线免费观看| 国产精品久久久久久亚洲调教| 欧美在线视频网| 最近免费中文字幕视频2019| 国产精品丝袜一区二区三区| 亚洲人成欧美中文字幕| 国模私拍一区二区三区| 日韩乱码在线视频| 成人黄色网免费| 亚洲视频在线看| 亚洲人av在线影院| 久久久人成影片一区二区三区| 久久久久久国产免费| 欧美成人性色生活仑片| 久久深夜福利免费观看| 久久人人爽人人爽人人片亚洲| 国产精品91视频| 日本午夜人人精品| 亚洲全黄一级网站| 欧美日韩亚洲91| 国产日韩换脸av一区在线观看| 国产成人+综合亚洲+天堂| 亚洲欧美成人精品| 亚洲欧美制服丝袜| 日韩va亚洲va欧洲va国产| 26uuu另类亚洲欧美日本老年| 亚洲成人三级在线| 亚洲男人的天堂在线| 欧美激情精品久久久久久蜜臀| 欧美丝袜第一区| 久久精品欧美视频| 欧美乱大交xxxxx| 欧美日韩一区二区免费视频| 另类美女黄大片| 一区二区三区四区精品| 国产日韩欧美在线视频观看| 亚洲一区二区免费| 一个人看的www欧美| 91精品视频大全| 欧美亚洲一级片| 亚洲图片欧美午夜| 亚洲影院色在线观看免费| 欧美性黄网官网|