詳解angularJS自定義指令間的相互交互
AngularJS 自定義指令
transclude:當元素標簽需要嵌套時使用,與ng-transclude配合使用。默認值為false不能使用嵌套,true為可以使用嵌套。在哪個標簽上使用ng-transclude就在哪個標簽內(nèi)進行嵌套。
代碼示例:(將hello、hi標簽進行替換同時span標簽嵌套div內(nèi))
<script type="text/javascript"> var m = angular.module('myApp',[]); m.directive('hello',function(){ return{ restrict:'E', replace:true, transclude:true, template:'<div>hello angular<h1 ng-transclude></h1></div>' }; }); m.directive('hi',function(){ return{ restrict:'E', replace:true, template:'<span>hi angular</span>' }; }); m.controller('Aaa',['$scope',function($scope){ $scope.name='hello'; }]); </script> <body ng-controller="Aaa"> <hello> <hi></hi> </hello> </body>
頁面結果展示:
在自定義指令當中controller與link的區(qū)別:
link是指DOM操作,操作也是針對當前標簽
controller是多調(diào)用性的數(shù)據(jù)共享,指令與指令間進行交互時也可以設置一些方法數(shù)據(jù),在其他標簽中也可以調(diào)用
require:從外部引入數(shù)據(jù),參數(shù)為被引入的指令,被引入的指令需要在引入指令的身上。
》^:是指被引入的指令是引入指令的父級
》?:兼容錯誤
代碼示例:
<script type="text/javascript"> var m = angular.module('myApp',[]); m.directive('hello',function(){ return{ restrict:'E', replace:true, transclude:true, controller:function($scope){ //$scope.name='miaov';只能在該標簽中使用 this.name = 'miaov';//可以在其他標簽中調(diào)用 }, template:'<div>hello angular<h1 ng-transclude></h1></div>' }; }); m.directive('hi',function(){ return{ restrict:'E', replace:true, require:'?^hello',//從外部引入指令,參數(shù)為被引入的標簽 link:function($scope,element,attr,reController){ console.log(reController.name); }, template:'<span>hi angular</span>' }; }); m.controller('Aaa',['$scope',function($scope){ $scope.name='hello'; }]); </script> <body ng-controller="Aaa"> <hello> <hi></hi> </hello> </body>
頁面結果展示:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- 深入講解AngularJS中的自定義指令的使用
- AngularJS創(chuàng)建自定義指令的方法詳解
- AngularJS優(yōu)雅的自定義指令
- AngularJS使用自定義指令替代ng-repeat的方法
- AngularJS 自定義指令詳解及實例代碼
- AngularJS自定義指令實現(xiàn)面包屑功能完整實例
- AngularJS實現(xiàn)自定義指令與控制器數(shù)據(jù)交互的方法示例
- AngularJS 自定義指令詳解及示例代碼
- AngularJS自定義指令之復制指令實現(xiàn)方法
- AngularJS自定義指令詳解(有分頁插件代碼)
- AngularJS實現(xiàn)自定義指令及指令配置項的方法
相關文章
深入理解Angularjs中$http.post與$.post
本篇文章主要介紹了深入理解Angularjs中$http.post與$.post ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05AngularJS操作鍵值對象類似java的hashmap(填坑小結)
我們知道java的hashmap中使用最多的是put(...),get(...)以及remove()方法,那么在angularJS中如何創(chuàng)造(使用)這樣一個對象呢?今天小編通過本文給大家分享下,感興趣的朋友一起學習吧2016-11-11