AngularJS:反转复选框状态

标签 angularjs

不知何故,通过 Angular 的魔力,如果您使用 ng-model 并为其提供一个 bool 值,则如果该 bool 值为 true,则您的复选框将被选中,如果为 false,则取消选中。

<input type="checkbox" ng-model="video.hidden">

虽然这一点相当令人困惑,但我实际上是在尝试反转选中状态,因为与 todo 示例不同,其中 todo.done 意味着该框被选中,我的模型更像 todo.incomplete.

不幸的是我的第一个猜测没有成功:

<input type="checkbox" ng-model="!video.hidden">

我处于模型被指定给我的位置,所以我无法更改它,也不想在客户端上修改它(因为我将客户端对象发送回服务器,因为它在受信任的环境中运行)。

更新

这在 1.3 中有效,并且不会为您提供字符串(1.2.xxx 为您提供字符串而不是 bool 值):

<input type="checkbox" ng-model="video.hidden" ng-true-value="false" ng-false-value="true">

最佳答案

您现在可以做到这一点,无需自定义指令、 Angular 支持 ng-true-valueng-false-value

https://docs.angularjs.org/api/ng/input/input[checkbox]

你的例子现在应该可以工作了 <input type="checkbox" ng-model="video.hidden" ng-true-value="false" ng-false-value="true">

关于AngularJS:反转复选框状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13925462/

相关文章:

javascript - 如何从另一个 Controller 更新 Controller 的 ng-repeat 模型?

javascript - NG-点击不起作用

javascript - 如何在 AngularJS 中禁用表单?

javascript - 将 AngularJS 与 innerHTML 一起使用

javascript - Angular $scope 变量在通过 $rootScope.$on 调用后未更新

javascript - 分页时如何进行正确的搜索

javascript - 在 ng-init 中使用 $timeout 调用函数以每 2 秒显示一次形状

javascript - 阻止 AngularJS 不执行 HTML 标签

javascript - 使用 NOT(!) 运算符时出现“赋值左侧无效”错误

javascript - 将 ngClass 应用于声明 ngRepeat 的元素