我有一个复选框:
<input ng-model="defaultAssigneeCheckbox" type="checkbox"/>
<p>{{defaultAssigneeCheckbox}}</p>
<button type="submit">Save</button>
下面的段落在false
和true
之间正确显示和更新其状态。
单击按钮运行控制器功能:
$scope.updateProject = function () {
var project = $scope.project;
console.log(typeof $scope.defaultAssigneeCheckbox)
console.log($scope.defaultAssigneeCheckbox)
if (!$scope.defaultAssigneeCheckbox) {
delete project.defaultAssignee;
}
};
当我点击按钮时,无论是否选中该复选框,它都会将复选框显示为true。
我做错了什么?
答案 0 :(得分:1)
提示:尊重"dot rule"。
<input ng-model="data.defaultAssigneeCheckbox" type="checkbox" />
答案 1 :(得分:0)
昨天遇到同样的问题,请尝试使用ng-true-value&amp; NG-假值
<input type="checkbox" ng-model="model.value" ng-true-value="1" ng-false-value="0">
在您的情况下使用true&amp;假
答案 2 :(得分:0)
console.log的输出是什么(typeof $ scope.defaultAssigneeCheckbox)?我有一种感觉它是&#39;字符串&#39;在这种情况下,$ scope.defaultAssigneeCheckbox始终为true。所以试试这个:
if ($scope.defaultAssigneeCheckbox != true) {
delete project.defaultAssignee;
}
如果有效则可以确定你是否正确或者你需要强制一个布尔值。在这种情况下,@ Mario Campa的解决方案看起来不错。就个人而言,我更喜欢布尔值,因为经验表明在这些情况下它会更有用。