【问题标题】:Radio buttons in Vuejs 2.0Vuejs 2.0 中的单选按钮
【发布时间】:2018-03-21 13:27:08
【问题描述】:

我正在VueJS 2.0 中构建一个小型应用程序,我正在使用 Inspinia 高级管理模板,其中有一个类似这样的单选按钮:

<div data-toggle="buttons" class="btn-group">
    <label class="btn btn-sm btn-white active"> 
        <input type="radio" v-model="taskTime" value="7" name="taskTime"> Week 
    </label>
    <label class="btn btn-sm btn-white"> 
        <input type="radio" v-model="taskTime" value="30" name="taskTime"> Month 
    </label>
</div>

当任何按钮被选中或taskTime 数据发生更改时,我正在调用一个函数,因此为此我已监视函数:

watch: {
    taskTime(newValue) {
        console.log('clicked');

    }
}

我已经在我的数据集中正确定义了 v-model/data

data() {
    return {
        taskTime: ''
    }
},

在我的例子中是 JSFiddle:https://jsfiddle.net/60q14y26/

我不知道它为什么不工作,我猜是有什么东西阻止了它的执行。帮我解决这些问题。

谢谢

【问题讨论】:

  • 我不确定本地代码中的数据是否缺少大括号。但是在您提供的 jsfiddle 中,这就是问题所在。在更新的jsfiddle 中,手表工作正常。
  • @Pradeepb 你说得对,我错过了这个东西,但问题是当我在我的主题上实现它时。相同的代码不起作用。

标签: vue.js vuejs2


【解决方案1】:
<div id="app">
  <div data-toggle="buttons" class="btn-group">
    taskTime {{ taskTime }}
    <label class="btn btn-sm btn-white active"> 
        <input type="radio" v-model="taskTime" value="7"  name="taskTime"> Week 
    </label>
    <label class="btn btn-sm btn-white"> 
        <input type="radio" v-model="taskTime" value="30" name="taskTime"> Month 
    </label>
  </div>
</div>

var vm = new Vue({
  el: '#app',
  data() {
    return {
      taskTime: null
    }
  },
  watch: {
    taskTime(newValue) {
      console.log('clicked');
    }
  }
})

这是有效的sn-p。您在小提琴中错过了一个“}”;)

jsfiddle

version with counter

还有一件事:您的构建系统可以从最终代码中删除 console.log。

【讨论】:

  • 那是我错过的,但问题不在于,我知道它正在工作,因为我们在小提琴中起草了正常的方式,但是当我实施时我没有得到适当的结果我的主题也一样。
  • 我对 Inspinia 了解不多。我找不到关于 Vue 的任何信息。您是否使用该产品的静态 html?
猜你喜欢
  • 2017-03-21
  • 2018-08-24
  • 2018-05-06
  • 1970-01-01
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
  • 2022-12-06
  • 2020-08-04
相关资源
最近更新 更多