angularJs中自定义指令transclude与templateUrl详解
2017-06-05 11:37
531 查看
默认情况下,自定义指令里模板的部分会替换掉指令所使用的所有内容,那么,如果想保留这些内容,就要使用transclude属性。
1.html
效果图:
templateUrl是指令模板地址的属性,一般单独建一个文件夹,命名和指令的命名相同,以防出现问题。
2.html
myexam.html
效果图:
1.html
<div ng-app="module"> <div my-exam>你好</div> </div> <script> var m = angular.module('module', []); m.directive('myExam', [function () { return { restrict: 'EA', template: '<h1><div ng-transclude=""></div>欢迎浏览泠泠在路上</h1>', /*transclude为true时,可以让 <div my-exam>你好</div>内容在template中的 <div ng-transclude=""></div>位置处显示出来*/ transclude:true, } }]); </script>
效果图:
templateUrl是指令模板地址的属性,一般单独建一个文件夹,命名和指令的命名相同,以防出现问题。
2.html
<div ng-app="module"> <div my-exam>你好</div> </div> <script> var m = angular.module('module', []); m.directive('myExam', [function () { return { restrict: 'EA', templateUrl:'view/myexam.html', /*在使用templateUrl时,使用了replace:true,需要在myexam.html文件中有一个顶层容器,即内容可以被<div></div>或其他容器包裹,不然会报错*/ replace:true, } }]); </script>
myexam.html
<h1>这是myexam指令的模板</h1>
效果图:
相关文章推荐
- AngularJs自定义指令详解(4) - transclude
- AngularJs自定义指令详解(4) - transclude
- AngularJs自定义指令详解(1) - restrict
- AngularJs自定义指令详解(3) - scope
- angularJS 自定义指令 属性:transclude、priority、terminal
- AngularJS自定义指令详解(有分页插件代码)
- angularJs中自定义指令replace属性详解
- 详解AngularJS中自定义指令的使用
- AngularJs自定义指令详解(2) - template
- angularJS自定义指令各配置项详解
- AngularJS 自定义指令详解
- AngularJs自定义指令详解(5) - link
- AngularJs自定义指令详解(9) - terminal
- AngularJs自定义指令详解(8) - priority
- angularJS 自定义指令 属性:templateUrl
- AngularJs自定义指令详解(2) - template
- AngularJs自定义指令详解(7) - multiElement
- AngularJS自定义指令详解(有分页插件代码)
- AngularJS中transclude用法详解
- AngularJs自定义指令详解(1) - restrict