angularjs select multiple="multiple" ng-repeat

效果图:

[img]http://dl2.iteye.com/upload/attachment/0115/6842/89c344d7-e1b7-3751-aadb-4bf49f5f3bee.png[/img]

<!DOCTYPE html>
<html ng-app="app">
<head>
<meta charset="utf-8">
<script src="editor-app/libs/angular_1.2.13/angular.min.js"></script>
<script src="editor-app/libs/angular_1.2.13/angular-animate.min.js"></script>
<link rel="stylesheet" href="editor-app/css/style-common.css">
<script type="text/javascript">
angular.module('app', [])
.controller('MyCtrl', ['$scope','myCache',function($scope,myCache){
$scope.multiSelectList=[
{id:1,name:'red',group:'china',selected:false},
{id:2,name:'yellow',group:'china',selected:false},
{id:3,name:'grey',group:'china',selected:false},
{id:4,name:'pink',group:'china',selected:false},
{id:5,name:'purple',group:'china',selected:false}
];
/*默认选中:default selected*/
var arr=["2","3","5"];
angular.forEach(arr,function(val,idx){
var keep=true;
angular.forEach($scope.multiSelectList,function(value,index){
if(keep){
if(value.id==val){
value.selected=true;
keep=false;
}
}
})
});
myCache.put("selected",arr);
$scope.myMultiSelectModel=myCache.get("selected");
/*单项点击事件:item click*/
$scope.itemClickFun=function(x){
var obj=myCache.get("selected");
if(x.selected){
x.selected=false;
var nObj=[];
angular.forEach(obj,function(val,idx){
if(val!=x.id){
nObj.push(val.toString());
}
});
myCache.put("selected",nObj);
}else{
x.selected=true;

if(""==obj||null==obj){
obj.push(x.id.toString());
}else{
var bFlag=true;
angular.forEach(obj,function(val,idx){
if(bFlag){
obj.push(x.id.toString());
bFlag=false;
}
});
}
myCache.put("selected",obj);
}
$scope.myMultiSelectModel=myCache.get("selected");
}

}]);
angular.module('app').factory('myCache', function($cacheFactory) {
return $cacheFactory('myData');
});
</script>
</head>
<!-- body #s -->
<body ng-controller="MyCtrl">
<select id="stId" multiple="multiple" ng-model="myMultiSelectModel" size="8" aria-describedby="basic-addon2">
<option ng-repeat="multi in multiSelectList" value='{{multi.id}}' ng-selected="{{multi.selected}}" ng-click="itemClickFun(multi)">{{multi.name}}</option>
</select>
<br>
<h4>多选select选中项={{myMultiSelectModel}}</h4>
</body>
<!-- body #e -->
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值