带有角度材料的三态md复选框

时间:2017-03-12 20:31:25

标签: javascript angularjs angularjs-directive frontend angular-material

我正在使用 Angular material 1.0.5 http://www.circuitbasics.com/raspberry-pi-zero-ethernet-gadget/ 指令。 我想知道是否有人知道如何将其变为三态复选框。

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

  • Checked(true)
  • 未选中(false)
  • Indeterminate(null)

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

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

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

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

感谢。

1 个答案:

答案 0 :(得分:8)

如果使用角度素材> 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];
}