Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vuejs2 如何动态设置类名?_Vuejs2 - Fatal编程技术网

Vuejs2 如何动态设置类名?

Vuejs2 如何动态设置类名?,vuejs2,Vuejs2,我有Vue.js应用程序,有一个组件,代码如下: 1) 在“模板”部分: 3) 在“方法”部分: 4) 在“样式”部分: 面板标题在“样式”部分使用第一类,这意味着面板标题的颜色为黑色。当我单击“保存”按钮时,我调用toggleColor方法,在某些情况下,我想将颜色更改为红色。这样不行。如何使其工作?您可以使用:class=“{'your-class-name':isAllowed}”模式设置类名 <panel :collapsible="true" title="Basic s

我有Vue.js应用程序,有一个组件,代码如下:

1) 在“模板”部分:

3) 在“方法”部分:

4) 在“样式”部分:


面板标题在“样式”部分使用第一类,这意味着面板标题的颜色为黑色。当我单击“保存”按钮时,我调用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