這次帶給大家angular的自訂指令如何使用,使用angular自訂指令的注意事項有哪些,下面就是實戰案例,一起來看一下。
自訂指定
angular.module('dir',[ ]).directive( 'mydir' ,function( ){ return {template:'<div>hello</div>'}} )
自訂指定對原有html的屬性擴充。
指定的應用程式:
<div mydir> </div>写成自定义属性 ----A----属性 -<mydir></mydir>写成元素。注意如果需要改变模板路径里面的内容,就需要使用ng-transclude,然后在模板指令的配置项里写 return {templateUrl :../template.html,transclued:true} -----E----元素
可以在設定項裡寫templateUrl(scope:{footer:@footer}) (注意@footer中的元素標籤裡面的footer是屬性),
Error: $compile:iscp
Invalid Isolate Scope Definition Description When declaring isolate scope the scope definition object must be in specific format which starts with mode character (@&=<), after which comes an optional ?, and it ends with an optional local name. myModule.directive('directiveName', function factory() { return { ... scope: { 'localName': '@', // OK 'localName2': '&attr', // OK 'localName3': '<?attr', // OK 'localName4': ' = attr', // OK 'localName5': ' =*attr', // OK 'localName6': 'attr', // ERROR: missing mode @&=< 'localName7': 'attr=', // ERROR: must be prefixed with @&=< 'localName8': '=attr?', // ERROR: ? must come directly after the mode 'localName9': '<*' // ERROR: * is only valid with = } ... } });
指令中多個單字採用駝峰命名法('myDir')。在html中可以使用my-dir來寫入指令,因為html不區分大小寫。
-- templateUrl(scope:{footer:@footer},replace:true)中的replace:true,可以替換掉自訂指定形成的標籤。
指定的類別的形式:a2cdb136a79469197e61a7b5adbc122716b28748ea4df4d9c2150843fecfba68,但是因為預設是A||E,所以要加一個匹配模式配置項目:
templateUrl (scope:{footer:@footer}, restrict:C)就可以加入成功。 ------C類別------
總共有四種符合模式:A,C,E,M(註解,比較少用),如果不寫匹配模式,預設為A || E.
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是angular的自訂指令如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!