微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐