更新 :对于最新的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演示)
$scope.checkbox
"1"
我尝试了各种变化:
ng-true-value="{{1}}" ng-true-value="{{Number(1)}}" ng-true-value="{{parseInt('1')}}"
他们都不工作。如何使angular将参数视为数字?
您可以使用 ngChecked ,如果表达式为真,则将在元素上设置特殊属性“ checked”
<input type="checkbox" ng-model="checkbox" ng-true-value="1" ng-false-value="0" ng-checked="checkbox == 1" />
您可以使用$scope.$watch将其转换为数字
$scope.$watch
$scope.$watch(function(){ return $scope.checkbox; }, function(){ $scope.checkbox = Number($scope.checkbox); console.log($scope.checkbox, typeof $scope.checkbox); },true);
演示