javascript - 具有 Angular Material 的三态 md-checkbox

标签 javascript angularjs angularjs-directive frontend angular-material

我正在使用 Angular material 1.0.5 md-checkbox 指令。 我想知道是否有人知道如何将其变成三态复选框。

三种状态(以及针对我的情况的相关变量值)是:

  • 已检查(正确)
  • 未选中(假)
  • 不确定(空)

对于指定的 Angular Material 版本 (1.0.5),当复选框被禁用时,它 将不确定状态显示为一个带有问号的复选框。

但是,当它未被禁用时,它默认返回到两个状态的复选框。

到目前为止,我失败的尝试是将指令包装在另一个指令中并试图接管对 md-checkbox 的控制。

有没有人对这种情况有任何指示?

谢谢。

最佳答案

如果您使用 Angular Material >1.0.8,您可以使用 md-indeterminate 属性并使用您自己的 ng-change 函数管理该值。

HTML

<md-checkbox ng-model="vm.checkModel" 
             md-indeterminate="vm.checkModel === null" 
             ng-change="vm.checkModelChange()">
    Checkbox
</md-checkbox>

Controller

var checkValues = [false, true, null];
var index = 0;
vm.checkModel = checkValues[index];

vm.checkModelChange = function() {
  vm.checkModel = checkValues[++index % checkValues.length];
}

关于javascript - 具有 Angular Material 的三态 md-checkbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42752740/

相关文章:

javascript - 如何根据键将对象数组拆分为不同的对象

javascript - JS/Javascript : . 匹配返回未定义的值

javascript - 你如何改变javascript slider 的大小

javascript - forms.$valid 显示 true,但打印为 false

javascript - 在 div 中验证动态生成的输入

performance - ng-include、ng-template 或指令 : which one is better for performance

javascript - IE 中的 DOM Level 2 和 3 核心支持?

javascript - Angularjs ng-model 不工作输入 [文本])

html - 在模态内的同一行中形成

angularjs - "Uploader"必须是 FileUploader 的实例