摘要:使用緩存模板的方式大致有三種方式一指令所在標(biāo)簽必須在指令的內(nèi)部,否則無法被編譯。服務(wù)配合在里面使用指定模板方式二方式三在里面調(diào)用緩存模板調(diào)用設(shè)置為可信用的代碼然后插入模板一般編寫自定義指令的時(shí)候更推薦使用方式。
使用ng緩存模板的方式大致有三種:
script tag
方式一
html:js: angular.module("demoModule", []) .controller("demoCtrl", ["$scope", "$sce", "$templateCache", demoCtrlFn]) .directive("demoDirective", ["$templateCache", demoDirectiveFn]); function demoDirectiveFn($templateCache) { restrict: "EA", template: function() { return document.getElementById("templateId.html") } }
PS: 指令ng-template所在script標(biāo)簽必須在ng-app指令的內(nèi)部,否則無法被angular context編譯。
$templateCache服務(wù)$templateCache+$sce配合ng-bind-html="templateId.html"
or 在directive里面使用templateUrl指定模板
方式二:
html:js: angular.module("demoModule", []) .directive("demoDirective", demoDirectiveFn) .run(["$templateCache", templateCacheFn]); function templateCacheFn($templateCache) { var tpl = ‘This is the content of the template {{:: name}}’; $templateCache.put("templateCache.html", tpl); } function demoDirective(){ return { restrict: "EA", templateUrl: "templateCache.html", link: function(scope, ele, attr){ scope.test = function() { console.log(123); } scope.name = "Hello templateCache"; } } }
方式三(在controller里面調(diào)用緩存模板):
html:js: angular.module("demoModule", []) .controller("demoCtrl", ["$sce", "$templateCache", "$scope", demoCtrl]) .run(["$templateCache", templateCacheFn]); function demoCtrl($sce, $templateCache, $scope) { var tpl = $templateCache.get("template.html"); //調(diào)用$sce,設(shè)置為可信用的html代碼然后插入模板 tpl = $sce.trustAsHtml(tpl); $scope.template = tpl; $scope.test = function() { console.log(123); } $scope.name = "Hello templateCache"; } function templateCacheFn($templateCache) { var tpl = ‘This is the content of the template {{:: name}}’; $templateCache.put("templateCache.html", tpl); }
一般編寫自定義指令的時(shí)候更推薦使用方式2。這樣不需要將模塊文件嵌入到業(yè)務(wù)代碼當(dāng)中去,同時(shí)只需要修改指令的配置文件就好。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/78732.html
摘要:可選參數(shù),布爾值或者對(duì)象默認(rèn)值為,可能取值默認(rèn)值。布爾值或者字符,默認(rèn)值為這個(gè)配置選項(xiàng)可以讓我們提取包含在指令那個(gè)元素里面的內(nèi)容,再將它放置在指令模板的特定位置。 前言 最近學(xué)習(xí)了下angularjs指令的相關(guān)知識(shí),也參考了前人的一些文章,在此總結(jié)下。 歡迎批評(píng)指出錯(cuò)誤的地方。 Angularjs指令定義的API showImg(https://segmentfault.com/img...
摘要:方法三使用調(diào)用父作用域中的函數(shù)實(shí)例地址同樣采用了缺省寫法,運(yùn)行之后,彈出窗口布爾值或者字符,默認(rèn)值為這個(gè)配置選項(xiàng)可以讓我們提取包含在指令那個(gè)元素里面的內(nèi)容,再將它放置在指令模板的特定位置。 準(zhǔn)備代碼,會(huì)在實(shí)例中用到 var app = angular.module(app, []); angular指令定義大致如下 app.directive(directiveName, functi...
摘要:方法三使用調(diào)用父作用域中的函數(shù)實(shí)例地址同樣采用了缺省寫法,運(yùn)行之后,彈出窗口布爾值或者字符,默認(rèn)值為這個(gè)配置選項(xiàng)可以讓我們提取包含在指令那個(gè)元素里面的內(nèi)容,再將它放置在指令模板的特定位置。 準(zhǔn)備代碼,會(huì)在實(shí)例中用到 var app = angular.module(app, []); angular指令定義大致如下 app.directive(directiveName, functi...
摘要:方法三使用調(diào)用父作用域中的函數(shù)實(shí)例地址同樣采用了缺省寫法,運(yùn)行之后,彈出窗口布爾值或者字符,默認(rèn)值為這個(gè)配置選項(xiàng)可以讓我們提取包含在指令那個(gè)元素里面的內(nèi)容,再將它放置在指令模板的特定位置。 準(zhǔn)備代碼,會(huì)在實(shí)例中用到 var app = angular.module(app, []); angular指令定義大致如下 app.directive(directiveName, functi...
閱讀 1398·2019-08-30 12:54
閱讀 1880·2019-08-30 11:16
閱讀 1623·2019-08-30 10:50
閱讀 2459·2019-08-29 16:17
閱讀 1277·2019-08-26 12:17
閱讀 1388·2019-08-26 10:15
閱讀 2398·2019-08-23 18:38
閱讀 795·2019-08-23 17:50