html
<div class="tm-dz-redio tm-deco-redio tm-margin-bottom-none" ng-repeat="item in searchGfz_xf_arealist">
<input id="search_recommendareazoom_${{item.value}}" type="checkbox" name="search_recommendareazoom" ng-change="checkrecommendareazoom(neoparams.recommendareazoom[$index])" ng-true-value="'{{item.value || 'all'}}'" ng-false-value="" ng-model="neoparams.recommendareazoom[$index]">
<label for="search_recommendareazoom_${{item.value}}" class="tm-lh24">{{item.name}}</label>
</div>
js
这个是区域的数组
$scope.searchGfz_xf_arealist = [
{value: '', name: '不限'},
{value: '1', name: '江干'},
{value: '2', name: '拱墅'},
{value: '3', name: '滨江'},
{value: '4', name: '西湖'},
{value: '5', name: '上城'},
{value: '6', name: '下城'},
{value: '7', name: '余杭'},
{value: '8', name: '萧山'},
{value: '9', name: '下沙'},
{value: '10', name: '之江'},
{value: '11', name: '大江东'}
];
开始先设置一个值给不限这个 我设置的是 all
$scope.neoparams = {
recommendareazoom: ['all']
}
$scope.checkrecommendareazoom = function (checkzoom) {
if(checkzoom =='all'){
$scope.neoparams.recommendareazoom = ['all'];
}else{
if(isInArray($scope.neoparams.recommendareazoom,'all')){
for (i in $scope.neoparams.recommendareazoom) {
if ($scope.neoparams.recommendareazoom[i] == 'all') {
$scope.neoparams.recommendareazoom[i] ='';
}
}
}
}
}
这个方法判断某个值是否在这个数组里
function isInArray(arr,value){
for(var i = 0; i < arr.length; i++){
if(value === arr[i]){
return true;
}
}
return false;
}
最后想了下还是优化下吧 主要是js
$scope.checkrecommendareazoom = function (checkzoom) {
if(checkzoom =='all'){
$scope.neoparams.recommendareazoom = ['all'];
}else{
isInArray($scope.neoparams.recommendareazoom,'all','recommendareazoom');
}
}
function isInArray(arr,value,type){
for(var i = 0; i < arr.length; i++){
if(value === arr[i]){
if(type === 'recommendareazoom'){
$scope.neoparams.recommendareazoom[i] ='';
}
return true;
}
}
return false;
}
最后再改动下 因为我的不限值是all默认在数组里是第0位 我这个也不用写循环了
function isInArray(arr,value,type){
if(value === arr[0]){
if(type === 'recommendareazoom'){
$scope.neoparams.recommendareazoom[0] ='';
}
return true;
}
return false;
}