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程序设计有所帮助。