一尘不染

将ngTrueValue和ngFalseValue设置为数字

angularjs

更新 :对于最新的Angular版本,该问题已过时,请参阅tsh对此职位的评论


我已经将复选框绑定到一个值:

<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演示

我尝试了各种变化:

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

他们都不工作。如何使angular将参数视为数字?


阅读 315

收藏
2020-07-04

共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);

演示

2020-07-04