【发布时间】:2023-03-04 08:56:01
【问题描述】:
我已经尝试了所有我能找到的解决方案,但我被卡住了。我有 2 个复选框,HBO 和 Marvin。 Marvin 需要显示一个 div。 HBO 不需要展示任何东西。它一直有效,直到我需要单击复选框两次才能显示/隐藏。通常这将是一个 $apply() 问题,但似乎并非如此。我相信我没有正确更新模型。我忘了提到复选框需要在另一个为真时重置为假。 plunker
var ctrl = this;
ctrl.showMeMarvin = function () {
if (ctrl.show === true) {
//$timeout(function () {
ctrl.marvin = false;
ctrl.show = false;
ctrl.hbo = false;
//})
}
else {
//$timeout(function () {
ctrl.marvin = true;
ctrl.show = true;
ctrl.hbo = false;
//})
}
};
ctrl.showMeHBO = function () {
if (ctrl.show === true) {
// $timeout(function () {
ctrl.show = false;
ctrl.hbo = true;
ctrl.marvin = false;
//})
}
else {
//$timeout(function () {
ctrl.marvin = false;
ctrl.hbo = true;
//})
}
};
【问题讨论】:
-
应该使用
ng-checked而使用ng-modelplnkr.co/edit/YwWsos2UyvJLh5s1s0pB?p=preview 你可以在这里找到github链接github.com/netman92/angular.js/commit/… -
我忘了说复选框需要在另一个为真时重置为假。
-
您是否试图让内容仅在选中 Marvin 而 HBO 未选中时才可见?例如plnkr.co/edit/Y0DNwmFr9fdwFhLLYPUS?p=preview
-
是的,这是正确的。请看更新
-
啊,当另一个复选框设置为 true 时,没有看到您关于将一个复选框重置为 false 的评论。如果是这种情况,您应该使用单选输入而不是复选框
标签: javascript angularjs checkbox