AngularJS用户选择器指令实例分析
本文实例分析了AngularJS用户选择器指令。分享给大家供大家参考,具体如下:
在开发表单时,我们需要使用经常需要使用到用户选择器,用户的数据一般使用如下方式存储:
用户1,用户2,用户3
我们可以使用angular指令实现选择器。
<!DOCTYPEhtml> <htmlng-app="app"> <head> <metacharset="UTF-8"> <metahttp-equiv="content-type"content="text/html;charset=utf-8"/> <scriptsrc="../assets/js/angular.min.js"></script> <linkrel="stylesheet"href="../assets/css/bootstrap.min.css"> <linkrel="stylesheet"href="../assets/css/bootstrap-theme.min.css"> <linkrel="stylesheet"href="../assets/css/component.css"> <linkrel="stylesheet"href="../assets/css/form.css"> <linkrel="stylesheet"href="../assets/css/font-awesome.min.css"> <scriptsrc="../assets/js/angular.min.js"></script> <scripttype="text/javascript"> varbase=angular.module("directive",[]); base.directive('htSelector',function(){ return{ restrict:'AE', templateUrl:'selector.html', scope:{ name:'=name' }, link:function(scope,element,attrs){ vararyName=scope.name.split(","); scope.names=aryName; scope.remove=function(i){ aryName.splice(i,1); }; scope.$watch( "names", function(newValue,oldValue){ if(newValue!=oldValue){ scope.name=aryName.join(","); } },true ); scope.selectUser=function(){ aryName.length=0; aryName.push("韩信"); } } } }); varapp=angular.module("app",["directive"]); app.controller('ctrl',['$scope',function($scope){ $scope.names='自由港,马云,刘强东'; $scope.getData=function(){ console.info($scope.names) } }]) </script> </head> <bodyng-controller="ctrl"> <divht-selectorname="names"></div> <buttonng-click="getData()">获取数据</button> </body> </html>
模版URL
<div> <spanng-repeat="iteminnames"> {{item}}<aclass="btnbtn-xsfa-remove"title="移除该项"ng-click="remove($index)"></a> </span> <aclass="btnbtn-smbtn-primaryfa-search"ng-click="selectUser()">选择</a> </div>
在指令中,使用了独立的scope,传入的数据为使用逗号分割的字符串,我们使用了数组进行操作。
这里的技巧是在字符串和数组之间进行转换。
这里使用了指令独立的scope,使用了watch对数组进行操作,需要注意的是如果监控数组,需要使用深度监控。
希望本文所述对大家AngularJS程序设计有所帮助。