angular 指令梳理 —— select 含 多选
下拉框指令。支持多选。依赖bootstrap
数据库存储,数据多选以逗号分割eg:1,2
<select ht-select="user.sex" permission="w" multiple ng-model="user.sex"></select>
1 .directive('htSelect', function() { 2 return { 3 restrict : 'AE', 4 require: "ngModel", 5 scope:{ 6 htSelect:"=" 7 }, 8 link: function(scope, element, attrs,ctrl){ 9 var permission = getPermission(attrs.permission,scope);//权限。没有权限控制的可以忽略11 var isMultiple =attrs.multiple!=undefined; //是否多选 12 13 if(permission == 'n'){ 14 element.hidden(); 15 }else if(permission=='r'){ //只读 16 var value = scope.htSelect; 17 if(!value) return; 18 19 if(isMultiple) value=value.split(","); 21 elsevalue=new Array(value); 24 25 var text=[];//只读获取key对应的text 26 for (var int = 0,val;val=value[int++];) { 27 text .push( $("option[value='"+val+"']",element).text()); 28 } 29 element.after(text.join(",")).hide(); 30 } 31 32 if(!isMultiple) return; 33 //编辑多选情况,modelValue为男,女。viewValue为[男,女] 34 ctrl.$formatters.push(function(value){ 35 if(value) return value.split(",") 36 return [] 37 }); 38 ctrl.$parsers.push(function(value){ 39 if(value&&value.length>0) return value.join(",") 40 return ""; 41 }); 42 } 43 44 })

浙公网安备 33010602011771号