是否有可能改变Angular Material的mdSwitch的假状态颜色?

Vas*_*its 3 javascript angularjs material-design angular-material

Angular Material md-switch是一个很棒的指令.由于我在文档中或在网络中找不到相关的东西,我想知道是否有可能在伪状态时更改指令的背景.

正如您在上面的链接中所看到的,当md-switch处于真/活状态时,它可以具有颜色.您只需使用class或ng-class语句设置它即可.

我想虽然有两种颜色,但是当我的范围是真的时,我们会说md-primary,而当它的范围是真的时我会说md-warn.

例如:

<md-switch ng-model="status" aria-label="Status" ng-class="{'md-primary': status === true, 'md-warn': status === false}"></md-switch>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

任何想法,如果不知何故可以做到这一点,而无需手动覆盖CSS?

ps:状态正在改变那里没有问题;)

And*_*hiu 13

这很简单,实际上:

/* 
 * The bar:
 */

md-switch .md-bar {
    background-color: #333; /* set not selected bar color */
}

md-switch.md-checked .md-bar {
    background-color: pink; /* set selected bar color */
}

md-switch[disabled] .md-bar {
    background-color: rgba(51, 51, 51, .15); /* set disabled bar color */
}

/* 
 * The switch:
 */

md-switch .md-thumb {
    color: rgb(158,158,158); /* not selected switch color */
}

md-switch.md-checked .md-thumb {
    background-color: rgb(255,255,255); /* selected switch color */
}

md-switch[disabled] .md-thumb {
    background-color: rgb(255,255,255); /* disabled switch color */
}

/* 
 * Ripple effect
 */

md-switch .md-ink-ripple { 
   color: rgb(255,0,0); /* not selected switch ripple color */
} 
md-switch.md-checked .md-ink-ripple { 
   color: rgb(92,184,92); /* selected switch ripple color */ 
}
Run Code Online (Sandbox Code Playgroud)

使用最弱的CSS选择器更新响应以更改md-switchAngular Material的样式状态(在最新版本上检查:) 1.0.0-rc7.

如果想要这是依赖于主题的,他们需要在上面的每一个上添加主题CSS选择器(如果你将主题设置为"角度"方式,该类将自身应用于每个角度材质元素):

md-switch[disabled].my-custom-theme .md-bar {...}
Run Code Online (Sandbox Code Playgroud)