Javascript 在AngularJS中切换复选框不是';t反映在控制器中

Javascript 在AngularJS中切换复选框不是';t反映在控制器中,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个复选框: <input ng-model="defaultAssigneeCheckbox" type="checkbox"/> <p>{{defaultAssigneeCheckbox}}</p> <button type="submit">Save</button> 当我点击按钮时,无论复选框是否被选中,它都会将复选框显示为true 我做错了什么?昨天也有同样的问题,尝试使用ng真值和ng假值 <input typ

我有一个复选框:

<input ng-model="defaultAssigneeCheckbox" type="checkbox"/>
<p>{{defaultAssigneeCheckbox}}</p>

<button type="submit">Save</button>
当我点击按钮时,无论复选框是否被选中,它都会将复选框显示为true


我做错了什么?

昨天也有同样的问题,尝试使用ng真值和ng假值

<input type="checkbox" ng-model="model.value" ng-true-value="1" ng-false-value="0">


在您的情况下,请使用true和false

提示:尊重客户



console.log(typeof$scope.defaultAssigneeCheckbox)的输出是什么?我感觉它是“字符串”,在这种情况下,$scope.defaultAssigneeCheckbox始终为真。因此,请尝试以下方法:

if ($scope.defaultAssigneeCheckbox != true) {
    delete project.defaultAssignee;
}

如果可以的话,请确定您是否同意,或者是否需要强制使用布尔值。在这种情况下,@Mario Campa的解决方案看起来不错。就个人而言,我更喜欢布尔值,因为经验表明它在这些情况下更有用。

console.log(typeof$scope.defaultAssigneeCheckbox)的输出是什么?我已经将defaultAssigneeCheckbox移动到了我已经拥有的项目对象中,它似乎很有帮助。谢谢
<input ng-model="data.defaultAssigneeCheckbox" type="checkbox" />
if ($scope.defaultAssigneeCheckbox != true) {
    delete project.defaultAssignee;
}