当前位置: 首页 > 面试题库 >

在angularjs中实现单个三态复选框的最佳方法是什么?

寿飞飙
2023-03-14
问题内容

有一个简单的方法来放置一个网页上的一个三态复选框,将其绑定到一个布尔模型,以便后者可以采取truefalsenull值?

到目前为止,我找到的最接近的解决方案是http://jsfiddle.net/HB7LU/454/,但是在设置初始视图状态时存在缺陷(因为在第一次渲染期间无法获取模型值)。任何其他建议都涉及多个子复选框,并通过监视它们来解决问题。


问题答案:

http://jsfiddle.net/xJhEG/我是在一个商业项目中完成的。三态为true,false,null(不是“未知”)

.directive('indeterminate', [function() {
    return {
      require: '?ngModel',
      link: function(scope, el, attrs, ctrl) {
        var truthy = true;
        var falsy = false;
        var nully = null;
        ctrl.$formatters = [];
        ctrl.$parsers = [];
        ctrl.$render = function() {
          var d = ctrl.$viewValue;
          el.data('checked', d);
          switch(d){
          case truthy:
            el.prop('indeterminate', false);
            el.prop('checked', true);
            break;
          case falsy:
            el.prop('indeterminate', false);
            el.prop('checked', false);
            break;
          default:
            el.prop('indeterminate', true);
          }
        };
        el.bind('click', function() {
          var d;
          switch(el.data('checked')){
          case falsy:
            d = truthy;
            break;
          case truthy:
            d = nully;
            break;
          default:
            d = falsy;
          }
          ctrl.$setViewValue(d);
          scope.$apply(ctrl.$render);
        });
      }
    };
  }])


 类似资料:
  • 我有一个使用许多复选框的javafx应用程序。选中复选框后,主窗口中将显示一个按钮。复选框设置为“false”将使按钮消失。很简单。 问题是复选框不记得它已被选中,并且应用程序总是以所选复选框开始,如fxml文件中定义的: 由于我在谷歌上找不到任何令人满意的东西,我想出了一个本土的解决方案,设置了一个函数,直接在fxml文档中将复选框的选定状态设置为“真”或“假”,效果非常好。 我只是想知道这是否

  • 问题内容: 我有大量的数据,用户必须从中选择一个。我正在考虑一种实现它的方法(当然,在GUI中)。我有一些想法。但只是想在这里发布,因为可能会有更好的选择。 说,用户必须从大量的用户群中选择一个名称。如果我只是为用户输入一个文本字段来输入名称,那么可能会出现诸如以不同格式输入相同名称,拼写错误等问题。 我在这里看到两个选择 使用组合框 使用列表(实际上,我在想类似的东西。由于空间问题,我无法始终显

  • 问题内容: 我正在寻找通过jQuery选择的所有复选框的VALUE。 问题答案: 您需要选择器并创建一个值数组: 如果您的复选框具有共享类,则使用它的速度会更快。,或使用通用名称 -更新- 如果不需要IE支持,则现在可以使用箭头功能使调用更加简洁:

  • 问题内容: 我将开始使用AngularJS进行客户端和Django进行服务器端项目。 使他们像最好的朋友一样工作的最佳实践是什么(静态文件,身份验证,部署等) 问题答案: 有多种方法可以从Django模板中为客户端模板提供支持,以实现有趣的优化。但是,鉴于Django和AngularJS的模板语言之间的相似之处,在这里几乎不值得付出任何努力。对于此类大多数项目,我会将AngularJS的静态服务与

  • 本文向大家介绍使用AngularJS处理单选框和复选框的简单方法,包括了使用AngularJS处理单选框和复选框的简单方法的使用技巧和注意事项,需要的朋友参考一下 AngularJS对表单的处理相当简单。在AngularJS使用双向数据绑定方式进行表单验证的时候,实质上它在帮我们进行表单处理。 使用复选框的的例子有很多,同时我们对它们的处理方式也有很多。这篇文章中我们将看一看把复选框和单选按钮同数

  • 问题内容: 我真的可以在Java中使用三态复选框。听起来很简单,但是我只看到过非常丑陋的实现 [注意:链接现在坏了]。 三个单选按钮占用的空间过多,就我而言,这可能会使用户感到困惑。基本上是用于搜索对话框的。我需要true,false或“无关”选项。人们使用其他技术吗? 问题答案: 我找到了一种通过简单地添加侦听器来制作三态复选框的方法: 然后在应用程序代码中,只有一行: 收到所有反馈后,我认为下