为了账号安全,请及时绑定邮箱和手机立即绑定

anjularjs-filter模块化

标签:
JavaScript

1、过滤器

<!doctype html><!-- ng-app使用范围HTML --><html lang="en" ng-app="test">  <head>    <meta <meta charset=" " set="UTF-8">    <title>Document</title>    <style type="text/css" media="screen">        #div1 input {background: #CCC;}        #div1 input.active {background: yellow;}        #div1 div {width: 200px;height: 200px;border: 1px solid #000;}    </style>    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="angular.min.js"></script>    <script type="text/javascript">        var app=angular.module('test', [])         app.controller('cont1',  function($scope){            $scope.arr=[12.4,12,3,44]            $scope.timer=12341341234        })        app.filter('my_filter',function () {            //只执行一次,进行初始化            //alter()            return  function (input) {                //执行多次                return input+19            }        })    </script>    <style type="text/css" media="screen">    </style></head><body ng-controller="cont1">        <ul>        <li ng-repeat="v in arr">{{v|my_filter}}:{{timer|date:'yyyy年MM月dd日'}}</li>    </ul></body></html>

2、directive:增强HTML

可以使用 .directive 函数来添加自定义的指令。

要调用自定义指令,HTML 元素上需要添加自定义指令名。

使用驼峰法来命名一个指令, runoobDirective, 但在使用它时需要以 - 分割, runoob-directive:

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="angular.min.js"></script> <script type="text/javascript">  var app=angular.module('test', [])  app.directive("runoobDirective", function() {      return {          restrict : 'C',          template : "<h1>自定义指令!</h1>"    // replace  : true    // M 必须加上replace:true,替换原有元素;replace:false,插入标签      };  }); </script></head><body ng-app="test"> <runoob-directive>restrict:E</runoob-directive>  <div runoob-directive>restrict:A</div> <span class="runoob-directive">restrict:C</span> <!-- directive: runoob-directive --></body></html>

restrict 值可以是以下几种:

  • E 作为元素名使用

  • A 作为属性使用

  • C 作为类名使用

  • M 作为注释使

restrict 默认值为 EA, 即可以通过元素名和属性名来调用指令。


3、directive>ng-transclude 嵌入 占位符

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="angular.min.js"></script> <script type="text/javascript">  var app=angular.module('test', [])  app.directive("runoobDirective", function() {      return {            restrict : 'E',          template : "<h1><ng-transclude></ng-transclude> 自定义指令!</h1>",            transclude:true    // replace  : true    // M 必须加上replace:true,替换原有元素;replace:false,插入标签      };  }); </script></head><body ng-app="test"> <runoob-directive>restrict:E</runoob-directive>  <div runoob-directive>restrict:A</div> <span class="runoob-directive">restrict:C</span> <!-- directive: runoob-directive --></body></html>

4、directive-下拉框组建

<!doctype html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="angular.min.js"></script>    <script type="text/javascript">        var app=angular.module('test', [])        app.controller('cont1', ['$scope', function ($scope) {            $scope.str=""            $scope.arr=['iphone','huawei','meizu','sansunm','lenovo']                    }])        app.directive('drop', [function () {            return {                restrict: 'E',                template:                 '<input type="text" ng-model="str">\                <ul>\                    <li ng-repeat="a in arr"  ng-show="a.indexOf(str)!=-1" >`a`</li>\                </ul>'            };        }])    </script></head><body ng-app='test' ng-controller='cont1'>     <drop></drop></body></html>

5、angular模块化技术

<!doctype html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="angular.min.js"></script>    <script type="text/javascript">        //angular.module() 创建模块mod1        angular.module('mod1', []).controller('mod1Ctrl', ['$scope', function ($scope) {            $scope.a="mod1Ctrl"        }])        //angular.module() 创建模块mod2        angular.module('mod2', []).controller('mod2Ctrl', ['$scope', function ($scope) {            $scope.b="mod2Ctrl"        }])        ////angular.module() 创建模块mod3,调用其他模块mod1,mod2        angular.module('mod3', ['mod1','mod2'])    </script></head><!-- ng-app 使用模块mod3 --><body ng-app='mod3' >    <div ng-controller="mod1Ctrl">`a`</div>    <div ng-controller="mod2Ctrl">`b`</div>    <div>`a`,`b`</div></body></html>


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消