Angularjs 角度中的位掩码复选框组

Angularjs 角度中的位掩码复选框组,angularjs,bitmask,Angularjs,Bitmask,非常简单,但我对angular还比较陌生,我想我有点不舒服,所以我有点卡住了: //复选框控制数组中是否存在值 var-app=angular.module('myApp',[]); 应用控制器('MainController',功能($scope){ $scope.bitMaskFromDB=5; $scope.fruits=[{value:1,标签:'apple'},{value:2,标签:'orange'},{value:4,标签:'pear'},{value:8,标签:'naartji

非常简单,但我对angular还比较陌生,我想我有点不舒服,所以我有点卡住了:

//复选框控制数组中是否存在值
var-app=angular.module('myApp',[]);
应用控制器('MainController',功能($scope){
$scope.bitMaskFromDB=5;
$scope.fruits=[{value:1,标签:'apple'},{value:2,标签:'orange'},{value:4,标签:'pear'},{value:8,标签:'naartjie'}];
});
app.directive('bitMask',function(){
返回{
范围:{
位掩码:'=',
值:'@'
},
链接:功能(范围、要素、属性){
变量处理程序=函数(设置){
如果(设置){
选中的变量=scope.bitMask和scope.value;
要素道具(“已检查”,已检查);
}否则{
var checked=元素属性(“checked”);
if(!scope.bitMask和scope.value)
scope.bitMask |=scope.value
//元素属性('选中',!选中);
scope.bitMask^=scope.value
}
console.log('bit='+scope.bitMask)
//console.log('value='+scope.value)
//console.log('checked='+checked)
};
var setupHandler=handler.bind(null,true);
var changeHandler=handler.bind(null,false);
元素on('change',function(){
范围:$apply(变更处理程序);
});
范围.$watch('bitMask',setupHandler,true);
}
};
});

海关抢劫犯
文件。写(“”);
位掩码复选框
{{fruit.label}}
位掩码的当前值:{{bitMaskFromDB}
我的朋友,你是我非常亲密的朋友

这是给你的解决办法。我真的不记得他们是怎么说的。但存在将原语绑定到作用域的奇怪行为

//复选框控制数组中是否存在值
var-app=angular.module('myApp',[]);
应用控制器('MainController',功能($scope){
$scope.iforgethowtheyexplainnsis={bitMaskFromDB:5};
$scope.fruits=[{value:1,标签:'apple'},{value:2,标签:'orange'},{value:4,标签:'pear'},{value:8,标签:'naartjie'}];
});
app.directive('bitMask',function(){
返回{
范围:{
位掩码:'=',
值:'@'
},
链接:功能(范围、要素、属性){
变量处理程序=函数(设置){
如果(设置){
console.log('value1='+scope.value)
选中的变量=scope.bitMask和scope.value;
要素道具(“已检查”,已检查);
}否则{
console.log('value2='+scope.value)
var checked=元素属性(“checked”);
if(!scope.bitMask和scope.value)
scope.bitMask |=scope.value
其他的
scope.bitMask^=scope.value
}
console.log('bit='+scope.bitMask)
//console.log('value='+scope.value)
//console.log('checked='+checked)
};
var setupHandler=handler.bind(null,true);
var changeHandler=handler.bind(null,false);
元素on('change',function(){
范围:$apply(变更处理程序);
});
范围.$watch('bitMask',setupHandler,true);
}
};
});

海关抢劫犯
文件。写(“”);
位掩码复选框
{{fruit.label}}
位掩码的当前值:{{iforgethowtheyexplainis.bitMaskFromDB}