Vue.js计算v-bind:class的属性

Mat*_*hew 6 javascript vue.js

我理解如何使用v-bind:class如果我有一个返回true或false的计算函数.

我想知道是否可以使用与所点击的按钮的ID匹配的计算属性以及该按钮的值.因此,单击按钮1我可以获取该按钮的值,并检查它是否与绑定到输入的数据模型的值匹配.

目前,该按钮的值与Vue数据属性同步.

<label v-bind:class="myBtnClass">
        <input type="radio" name="button1" id="button1" value="1" v-model="valueOfBtn"> One 
</label>
<label v-bind:class="myBtnClass">
        <input type="radio" name="button2" id="button2" value="2" v-model="valueOfBtn"> Two 
</label>
Run Code Online (Sandbox Code Playgroud)
new Vue({
    el: '#app',

    data: {
        'valueOfBtn': 1
Run Code Online (Sandbox Code Playgroud)

这个位只适用于一个按钮,显然我不想重复这段代码x次.

computed: {

myBtnClass: function () {
            var result = [];
            if (this.valueOfBtn) == document.getElementById('button1').value.valueOf()))
            {
                result.push('primary');
            }
            return result;
Run Code Online (Sandbox Code Playgroud)

提前致谢

Lin*_*org 31

使用方法代替:

export default = {
  methods: {

    myBtnClass: function(name) {
      var result = [];
      if (this.valueOfBtn) === name) {
        result.push('primary');
      }
      return result;
    },
  // ...
  }
}
Run Code Online (Sandbox Code Playgroud)

和HTML:

<label v-bind:class="myBtnClass('button1')">
....
<label v-bind:class="myBtnClass('button2')">
Run Code Online (Sandbox Code Playgroud)