为什么v-bind:class不工作?

时间:2017-09-25 10:39:30

标签: javascript jquery html vue.js vuejs2

我正在学习V-bind:VueJS中的类,但我遇到了一些问题。这是我的代码

var myApp = new Vue({
  el: "#result",
  data: {
    isActive: true
  }
});
.red {
  color: red
}
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.4.4/vue.min.js"></script>
<div id="result">
  <p v-bind:class="{red: isActive}">Hello</p>
</div>

上面的代码有什么问题吗?因为我希望结果是

<div class="red"></div>

提前致谢!

4 个答案:

答案 0 :(得分:0)

它完美无缺,请参阅codepen示例:

https://codepen.io/martiensk/pen/boBPKQ

生成的代码是:

<div id="result">
    <p class="red">Hello</p>
</div>

问题不在于您的Vue代码,而在于其他地方。

答案 1 :(得分:0)

var myApp = new Vue({
  el: "#result",
  data: function(){
    return {
      isActive: true
    }
  }
});
.red {
  color: red
}
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.4.4/vue.min.js"></script>
<div id="result">
  <div v-bind:class="{red: isActive}">Hello</div>
</div>

数据仅在组件定义中使用时接受函数。

data: function(){
    return {
        isActive: true
    }
}

https://vuejs.org/v2/api/#Options-Data

答案 2 :(得分:0)

请在JsFiddle在线编辑器上运行此代码。 Link     

<div id="app">
   <div class="box" :class="{bgColor: attache}" @click="attache = !attache">
     <p class="text" :class="{'txt-color': attache}">
       3
     </p>
   </div>
</div>

CSS代码

.box {
  height: 70px;
  width: 70px;
  background-color: green;
  display:flex;
  flex-direction: row;
  justify-content: center;
  align-items:center;
  cursor: pointer;
}

.text {
  font-size:18px;
  color: white;
}

.bgColor {
  background-color: #e8eaed;
}

.txt-color {
  color: #000;
}

的JavaScript

new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue.js!',
    attache: false
  }
})

答案 3 :(得分:0)

清除您的cache即可正常工作。

在浏览器隐身模式下进行检查。