AngularJS - 选中时使用 ng-style 设置单选按钮标签的颜色

Posted

技术标签:

【中文标题】AngularJS - 选中时使用 ng-style 设置单选按钮标签的颜色【英文标题】:AngularJS - Use ng-style to set color of radio button label when checked 【发布时间】:2017-12-26 09:02:32 【问题描述】:

我知道如何使用ng-style 设置单选按钮标签的颜色,如下所示:

ng-style="'background-color': buttonColor"

但是,当使用ng-style 指令检查单选按钮标签时,如何更改它的颜色?在css中是这样的:

.radio-button:checked+label 
    background-color: #52b6db;
    border: 1px solid #52b6db;

编辑:基本上,我如何通过ng-style 访问:checked+label 样式属性?

【问题讨论】:

你能发个codepen吗? 你也可以使用 ng-class.. ngstyle 使用内联样式,所以这是不可能的。改用 ng-class 【参考方案1】:

基本上在控制器中为 ng-style 调用一个函数,并根据按钮的值返回适当的样式对象。

ng-style="$ctrl.getStyle()"

function getStyle() 
if (some condition) 
    return 
        background-color: #52b6db;
        border: 1px solid #52b6db;
 else 
    return ...

好的,这有点过时了,但你可以做到这一点。如果在您的 index.html 页面上,您已经在文档级别(在 html 标记上)加载了您的应用程序,您实际上可以有一个带有控制器的部分并使用控制器引用定义 css,因此您可以为收音机动态设置颜色-button:checked+label 这样。

【讨论】:

我想知道如何通过ng-style 访问:checked+label 样式属性? 我认为你根本不需要 ng-style。这似乎是你应该能够用直接的 css 来做的事情。我不会尝试将 ng-style 与 css 类混合使用。似乎只使用 ng-class 会更直接。 但问题是,使用纯 css 类我无法使颜色动态化,而使用 ng-style 我可以 好的。不确定你可以在那里绑定 :checked+label ,但使用控制器方法应该会给你同样的结果。 更新了答案。在我开始使用 Angular Material 之前,我在一个应用上做了类似的事情。

以上是关于AngularJS - 选中时使用 ng-style 设置单选按钮标签的颜色的主要内容,如果未能解决你的问题,请参考以下文章

angularjs实现checkbox的点击-全选功能-选中数据

angularJS全选功能实现

使用复选框并且需要 AngularJS

仅当元素悬停在 AngularJS 中时,如何分配变量?

仅在选中时读取 GTK 单选按钮信号

angularJs里单选框radio怎么使用ng-model