MDL:通过 JS 将开关状态设置为 "on"

MDL: Set Switch state to "on" via JS

我可以通过 let iSwitch = document.getElementById('interestedSwitch');

访问我的交换机

我查看了 github 并找到了方法 MaterialSwitch.on(),但是 iSwitch.MaterialSwitch.on(); 未定义。 iSwitch.checked = true; 也无济于事。 我正在使用 AngularJS,如果这可能是问题的根源。

假设 interestedSwitch 是带有 class mdl-switch__input 的输入元素,您需要访问父元素。这应该是带有 mdl-js-switch 的标签(带有 MaterialSwitch 组件)。然后你可以尝试这样的事情:

if(parent) {
        if(parent.MaterialSwitch && parent.MaterialSwitch.checkToggleState) {
            /* update MDL state if it was changes form javascript */
            parent.MaterialSwitch.checkToggleState();
        }
    }