你试过这个吗:
<ion-toggle [style.color]="colorVariable"></ion-toggle>
colorVariable 是 .ts 文件中组件中的一个变量,您可以动态更改它:
if (this.redCondition)
this.colorVariable = 'red';
else
this.colorVariale = 'black';
或者,您可以在 SCSS 文件中定义两个 CSS 类,分别称为 red-toggle 和 black-toggle。然后你可以:
<ion-toggle [class.red-toggle]="redCondition" [class.black-toggle]="!redCondition"></ion-toggle>
这些方法分别称为style and class binding。
如果你想动态改变你的css样式中的值,你可以使用ngStyle directive:
[ngStyle]="{ 'background-color': hexColorString}"
编辑:
问题是ion-toggle转译后会有两个子节点,你想动态改变这些子节点的样式。这些节点是切换图标和切换内部:
这不是最干净的方法,但您可以使用以下打字稿代码,并对其进行修改以使颜色动态变化:
var div1 = document.getElementById('mytoggle').getElementsByTagName('div');
if(div1[0]){
div1[0].style.backgroundColor = '#0F0';
var div2 = div1[0].getElementsByTagName('div');
if(div2[0])
div2[0].style.backgroundColor = '#00F';
}
请注意,您必须在 html 文件中将“mytoggle”设置为 ion-toggle 元素的 ID。
免责声明:此代码相当老套,可能无法在 Ionic 的未来版本中正常工作!