失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > angularJS学习---自定义指令---templateUrl的几种写法

angularJS学习---自定义指令---templateUrl的几种写法

时间:2020-02-15 23:34:08

相关推荐

angularJS学习---自定义指令---templateUrl的几种写法

第一种写法:

<!DOCTYPE html> <html><head> <meta charset="utf-8"> <title></title> </head><body> <div ng-app="myApp"> <script type="text/ng-template" id="zippy.html"> <div> <h3 ng-click="toggleContent()">{{title}} </h3> <div ng-show="isContentVisiable" ng-transclude></div> </div> </script> <input type="text" ng-model="model.title" /> <br /> <input type="text" ng-model="model.content" /><zippy title="{{model.title}}"> the content is :{{model.content}} </zippy> </div> <script type="text/javascript" src="../js/angular.min.js"></script> <script type="text/javascript" src="../js/templateUrl.js"></script> </body></html>

第二种写法是把html放在单独的html文件里面:

<div> <h3 ng-click="toggleContent()">{{title}} </h3> <div ng-show="isContentVisiable" ng-transclude></div> </div>

var app = angular.module('myApp', []); //app.run(function($templateCache) { // $templateCache.put("zippy.html", " <div><h3 ng-click="toggleContent()">{{title}} </h3><div ng-show="isContentVisiable" ng-transclude></div></div>") //}); app.directive('zippy',function ($templateCache) { //console.log($templateCache.get("zippy.html")); return { restrict:'E', transclude:true, scope:{ title:'@' }, templateUrl:'../node/templateUrl-zippy.html', //template: $templateCache.get("zippy.html"); link: function(scope) { scope.isContentVisiable = false; scope.toggleContent = function() { scope.isContentVisiable = !scope.isContentVisiable; }; } } })

不过这里因为js目录是当前的目录,你的html目录肯定在另外一个文件夹里,所以自己记得路径的问题

<!DOCTYPE html> <html><head> <meta charset="utf-8"> <title></title> </head><body> <div ng-app="myApp"> <!--<script type="text/ng-template" id="zippy.html"> <div> <h3 ng-click="toggleContent()">{{title}}</h3> <div ng-show="isContentVisiable" ng-transclude></div> </div> </script> --> <input type="text" ng-model="model.title" /> <br /> <input type="text" ng-model="model.content" /><zippy title="{{model.title}}"> the content is :{{model.content}} </zippy> </div> <script type="text/javascript" src="../js/angular.min.js"></script> <script type="text/javascript" src="../js/templateUrl.js"></script> </body></html>

这样做就使得阅读代码变得更加的容易

第三种写法:把模板放在运行块里面

var app = angular.module('myApp', []); app.run(function($templateCache) { $templateCache.put("zippy.html", ' <div><h3 ng-click="toggleContent()">{{title}} </h3><div ng-show="isContentVisiable" ng-transclude></div></div>') }); app.directive('zippy',function (/*$templateCache*/) { //console.log($templateCache.get("zippy.html")); return { restrict:'E', transclude:true, scope:{ title:'@' }, templateUrl:'zippy.html', //templateUrl:'../node/templateUrl-zippy.html', //template: $templateCache.get("zippy.html"); link: function(scope) { scope.isContentVisiable = false; scope.toggleContent = function() { scope.isContentVisiable = !scope.isContentVisiable; }; } } })

html文件:

<!DOCTYPE html> <html><head> <meta charset="utf-8"> <title></title> </head><body> <div ng-app="myApp"> <!--<script type="text/ng-template" id="zippy.html"> <div> <h3 ng-click="toggleContent()">{{title}}</h3> <div ng-show="isContentVisiable" ng-transclude></div> </div> </script> --> <input type="text" ng-model="model.title" /> <br /> <input type="text" ng-model="model.content" /><zippy title="{{model.title}}"> the content is :{{model.content}} </zippy> </div> <script type="text/javascript" src="../js/angular.min.js"></script> <script type="text/javascript" src="../js/templateUrl.js"></script> </body></html>

建议还是使用第二种方法

如果觉得《angularJS学习---自定义指令---templateUrl的几种写法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。