angularjs – 将ngTrueValue和ngFalseValue设置为数字

我已经绑定了一个值的复选框:
<input type="checkBox" ng-model="checkBox" ng-true-value="1" ng-false-value="0" />

在控制器中复选框的值设置为1:

function Controller($scope) {
    $scope.checkBox = 1
}

但是,最初该复选框未出现选中状态。如果我将$ scope.checkBox的初始值更改为“1”,它会。 (jsfiddle demo)

我试过各种各样的变化:

ng-true-value="{{1}}"
ng-true-value="{{Number(1)}}"
ng-true-value="{{parseInt('1')}}"

他们没有工作。我如何使角度处理参数作为一个数字?

你可以使用 ngChecked,如果表达式是真实的,那么将在元素上设置特殊属性“checked”
<input type="checkBox" 
    ng-model="checkBox" 
    ng-true-value="1" 
    ng-false-value="0" 
    ng-checked="checkBox == 1" />

你可以使用$ scope。$ watch将它转换为数字

$scope.$watch(function(){
    return $scope.checkBox;
},function(){
    $scope.checkBox = Number($scope.checkBox);
    console.log($scope.checkBox,typeof $scope.checkBox);
},true);

DEMO

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...