天天看點

angular-directive各個參數介紹

這篇文章隻是介紹,加深了解,這裡有篇例子的部落格寫的不錯,感興趣的可以看看

http://damoqiongqiu.iteye.com/blog/1917971

作用:自定義html中的元件(說白了就是各個頁面片互相粘來粘去)

看下代碼:

var directives = angular.module('demo.directives', []);

directives.directive('customDirective', function() {
return {
    restrict: 'ECMA',
    template: '<nav></nav>',
    templateUrl: 'directive.html',
    replace: false,
    transclude: false,
    scope: false,
    controller:directiveController(fn),
    link: function(scope, element, attrs) {
    }
};
})
           

restrict:

指定了directive的使用形式,共有四種:

angular-directive各個參數介紹

template和templateUrl:

用于指定directive對應的模闆,前者直接使用字元串定義模闆,而後者則通過url連結外部模闆檔案。(2選1)

replace:

指定是否使用模闆替換directive作用的DOM元素。

transclude:

用于控制是否要将該directive的子元素添加到模闆中ng-tranclude指定的元素之下

scope:

用于指定目前directive所對應的scope,不同的取值之間的影響非常大。

  • false:此時directive與父元素共享scope
  • true:此時directive有自己的scope,該scope繼承父元素所對應的scope
  • isolate:directive有自己的scope,該scope不會繼承自父元素對應的scope,但是仍然可以通過scope.$parent通路父節點的scope。這不是一個推薦的做法,因為這樣就對父元素進行了限制,影響了directive的使用範圍。
  • 如果想在父子元素之間共享資料,可以明确指定那些元素需要父子之間共享。方法共有三種:

    使用@将父級scope中的屬性綁定到本地scope中,單向綁定,這個值總是字元串,在template中需要使用{{}}

    使用=同上,隻不過這裡是雙向綁定,在template中可以直接給出父級scope的屬性名稱

    使用&用于倒入函數或者表達式

controller

directive對應的controller,通常用于directive之間的通信。

link:

此函數的主要作用就是對DOM和scope做資料綁定。在這個函數中,可以通路scope了。

還有些不常用的參數:

terminal

require

priority

compile

樓主就不在這裡介紹了,需要的請自行百度。