Vuejs2 如何动态设置类名?
我有Vue.js应用程序,有一个组件,代码如下: 1) 在“模板”部分: 3) 在“方法”部分: 4) 在“样式”部分:Vuejs2 如何动态设置类名?,vuejs2,Vuejs2,我有Vue.js应用程序,有一个组件,代码如下: 1) 在“模板”部分: 3) 在“方法”部分: 4) 在“样式”部分: 面板标题在“样式”部分使用第一类,这意味着面板标题的颜色为黑色。当我单击“保存”按钮时,我调用toggleColor方法,在某些情况下,我想将颜色更改为红色。这样不行。如何使其工作?您可以使用:class=“{'your-class-name':isAllowed}”模式设置类名 <panel :collapsible="true" title="Basic s
面板标题在“样式”部分使用第一类,这意味着面板标题的颜色为黑色。当我单击“保存”按钮时,我调用toggleColor方法,在某些情况下,我想将颜色更改为红色。这样不行。如何使其工作?您可以使用
:class=“{'your-class-name':isAllowed}”模式设置类名
<panel
:collapsible="true"
title="Basic section"
:iscollapsed="false"
class="category-panel"
:class="{'panel-title-red': isColorToggled}"
>
...
// data
isColorToggled : false,
...
// methods
toggleColor () {
if (!this.document.docDate) {
isColorToggled = true;
}
},
...
//资料
isColorToggled:错误,
...
//方法
切换颜色(){
如果(!this.document.docDate){
isColorToggled=true;
}
},
假设您的标题在面板组件中有自己的元素。您将无法从面板外部直接向该元素添加CSS类,只能向面板的外部元素添加类。要向内部元素添加一个类,您需要在面板上显示一个合适的道具,并让面板处理样式
但是,要使用与问题中的代码类似的代码使其工作,您需要更改以下内容:
this.className='panel>>>.panel title red'
试图将类设置为选择器是没有意义的。相反,它应该是:
this.className='panel title red'
这将把类面板标题设置为红色
,位于面板的最外层元素上。这可能不是您想要的元素,但这是我们在面板之外所能做的最好的。然后需要合适的CSS才能使其生效:
.panel-title-red >>> .panel-title
font-weight 400
color red
我假设这将经过预处理器,因为它实际上不是有效的CSS,但它与您发布的代码一致
toggleColor () {
if (!this.document.docDate) {
this.className = 'panel >>> .panel-title-red'
}
},
async save () {
this.toggleColor()
...
}
.panel >>> .panel-title
font-weight 400
.panel >>> .panel-title-red
font-weight 400
color red
<panel
:collapsible="true"
title="Basic section"
:iscollapsed="false"
class="category-panel"
:class="{'panel-title-red': isColorToggled}"
>
...
// data
isColorToggled : false,
...
// methods
toggleColor () {
if (!this.document.docDate) {
isColorToggled = true;
}
},
.panel-title-red >>> .panel-title
font-weight 400
color red