gpt4 book ai didi

javascript - 如何根据 ng-style 指令中的多个条件应用多个样式?

转载 作者:行者123 更新时间:2023-11-29 10:31:51 24 4
gpt4 key购买 nike

在 Angular 中,我需要根据不同的条件应用不同的样式属性,但它不是这样工作的,我只能用条件表达式应用 2 个条件。

<div ng-style="
(status=="up") ?{'background-color':'green' ,'color':'green'}
(status=="down")?{'background-color':'red' ,'color':'red'}
(status=="idle")?{'background-color':'yellow','color':'yellow'}
(status=="") ?{'background-color':'grey' ,'color':'grey'}
">

如果你知道任何方法将属性传递给一个函数,该函数返回 ng 样式的样式 obj,就像下面这样奇怪的不起作用,那就更好了!

$scope.styleFn(status,attr) {
(status=="up") ?{attr:'green'}
(status=="down")?{attr:'red'}
(status=="idle")?{attr:'yellow'}
(status=="") ?{attr:'grey'}
}

<div ng-style="styleFn('up','background-color')">

最佳答案

是的,您可以使用函数来指定更复杂的条件。

var style = {
'up': {'background-color':'green' ,'color':'green'},
'down': {'background-color':'red' ,'color':'red'},
'idle': {'background-color':'yellow' ,'color':'yellow'},
'default': {'background-color':'grey' ,'color':'grey'}
}

$scope.applyStyle = function(status) {
//the status is the key to get the target style
return status ? style[status] : style['default'];
)};

然后是模板

<div ng-style="applyStyle(status)"></div>

关于javascript - 如何根据 ng-style 指令中的多个条件应用多个样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44210899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com