AngularJS —— 創(chuàng)建自定義的指令

除了 AngularJS 內(nèi)置的指令外绰上,我們還可以創(chuàng)建自定義指令癣诱。
你可以使用 .directive 函數(shù)來添加自定義的指令窖式。
要調(diào)用自定義指令港柜,HTML 元素上需要添加自定義指令名。
使用駝峰法來命名一個(gè)指令胳赌, runoobDirective, 但在使用它時(shí)需要以 - 分割, runoob-directive:

AngularJS 實(shí)例
<body ng-app="myApp">

<runoob-directive></runoob-directive>

<script>
var app = angular.module("myApp", []);
app.directive("runoobDirective", function() {
    return {
        template : "<h1>自定義指令!</h1>"
    };
});
</script>

</body>

你可以通過以下方式來調(diào)用指令:

  • 元素名
  • 屬性
  • 類名
  • 注釋

限制使用:你可以限制你的指令只能通過特定的方式來調(diào)用牢撼。

restrict 值可以是以下幾種:

  • E 作為元素名使用
  • A 作為屬性使用
  • C 作為類名使用
  • M 作為注釋使用
    restrict 默認(rèn)值為 EA, 即可以通過元素名和屬性名來調(diào)用指令。

angular自定義指令的兩種寫法:

上面這種匈织,感覺更清晰明確一點(diǎn)浪默。
// angular.module('MyApp',[])
// .directive('zl1',zl1)
// .controller('con1',['$scope',func1]);
//
// function zl1(){
//   var directive={
//     restrict:'AEC',
//     template:'this is the it-first directive',
//   };
//   return directive;
// };
//
// function func1($scope){
//   $scope.name="alice";
// }

//這是教程里類似的寫法
angular.module('myApp',[]).directive('zl1',[ function(){
  return {
    restrict:'AE',
    template:'thirective',
    link:function($scope,elm,attr,controller){
      console.log("這是link");
    },
    controller:function($scope,$element,$attrs){
      console.log("這是con");
    }
  };
}]).controller('Con1',['$scope',function($scope){
  $scope.name="aliceqqq";
}]);

還有指令配置項(xiàng)的:link controller等在項(xiàng)目運(yùn)用中有遇到過:

angular.module('myApp', []).directive('first', [ function(){
    return {
        // scope: false, // 默認(rèn)值牡直,共享父級(jí)作用域
        // controller: function($scope, $element, $attrs, $transclude) {},
        restrict: 'AE', // E = Element, A = Attribute, C = Class, M = Comment
        template: 'first name:{{name}}',
    };
}]).directive('second', [ function(){
    return {
        scope: true, // 繼承父級(jí)作用域并創(chuàng)建指令自己的作用域
        // controller: function($scope, $element, $attrs, $transclude) {},
        restrict: 'AE', // E = Element, A = Attribute, C = Class, M = Comment
        //當(dāng)修改這里的name時(shí),second會(huì)在自己的作用域中新建一個(gè)name變量纳决,與父級(jí)作用域中的
        // name相對(duì)獨(dú)立碰逸,所以再修改父級(jí)中的name對(duì)second中的name就不會(huì)有影響了
        template: 'second name:{{name}}',
    };
}]).directive('third', [ function(){
    return {
        scope: {}, // 創(chuàng)建指令自己的獨(dú)立作用域,與父級(jí)毫無關(guān)系
        // controller: function($scope, $element, $attrs, $transclude) {},
        restrict: 'AE', // E = Element, A = Attribute, C = Class, M = Comment
        template: 'third name:{{name}}',
    };
}])
.controller('DirectiveController', ['$scope', function($scope){
    $scope.name="mike";
}]);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末阔加,一起剝皮案震驚了整個(gè)濱河市饵史,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌胜榔,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異讲竿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)弄屡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門题禀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人膀捷,你說我怎么就攤上這事迈嘹。” “怎么了全庸?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長啄育。 經(jīng)常有香客問我拌消,道長墩崩,這世上最難降的妖魔是什么鹦筹? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任址貌,我火速辦了婚禮徘键,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘虚青。我一直安慰自己它呀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布棒厘。 她就那樣靜靜地躺著纵穿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奢人。 梳的紋絲不亂的頭發(fā)上谓媒,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音何乎,去河邊找鬼篙耗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛宪赶,可吹牛的內(nèi)容都是我干的宗弯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼搂妻,長吁一口氣:“原來是場噩夢啊……” “哼蒙保!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起欲主,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤邓厕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后扁瓢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體详恼,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年引几,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伟桅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片楣铁。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赫冬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出竖哩,到底是詐尸還是另有隱情相叁,我是刑警寧澤增淹,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站拳喻,受9級(jí)特大地震影響冗澈,放射性物質(zhì)發(fā)生泄漏亚亲。R本人自食惡果不足惜捌归,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望剃浇。 院中可真熱鬧,春花似錦臼寄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炼邀。三九已至拭宁,卻和暖如春杰标,著一層夾襖步出監(jiān)牢的瞬間腔剂,已是汗流浹背掸犬。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國打工湾碎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胜茧,地道東北人呻顽。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像贩挣,于是被迫代替她去往敵國和親王财。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绒净,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容