Javascript 如何设置我的<;输入类型=";复选框“&燃气轮机;解析器指令’;你不能覆盖它吗?
我有一个指令将复选框绑定的模型设置为一个数字,而不是bool:Javascript 如何设置我的<;输入类型=";复选框“&燃气轮机;解析器指令’;你不能覆盖它吗?,javascript,angularjs,checkbox,Javascript,Angularjs,Checkbox,我有一个指令将复选框绑定的模型设置为一个数字,而不是bool: module.directive('sjNumber', function() { return { require: 'ngModel', link: function($scope, $element, $attribute, $modelController) { $modelController.$parsers.push(function(viewValue)
module.directive('sjNumber', function() {
return {
require: 'ngModel',
link: function($scope, $element, $attribute, $modelController) {
$modelController.$parsers.push(function(viewValue) {
return viewValue + 0;
});
}
};
});
但是,当我使用此选项时,更改复选框值后,模型总是设置为true
或false
,而不是1
或0
我做了一些挖掘,发现Angular的内置复选框解析器是在运行link
函数之后插入的,此时$parsers
数组是空的。(内置解析器添加在AngularJS v1.2.0-rc.3第14945行的复选框inputType
中。)
我怎样才能做到这一点呢?你不能只使用
ng真值
和ng假值
属性吗?像
?请参阅文档中的input[checkbox]
,显然它只会使用字符串值。我可以试着用一个指令再次将它们转换成数字,但结果却是一个完整的循环