【问题标题】:Error in v-on handler: "ReferenceError: number is not defined"v-on 处理程序中的错误:“ReferenceError:未定义编号”
【发布时间】:2020-08-05 21:10:13
【问题描述】:

我开始使用 Laravel 和 Vue.js 进行小型项目。我尝试使用v-model 设置值,但出现如下错误:

<a href="#" class="dropdown-item" @click.prevent="edit" v-model="number = 1">
  <i class="icon-file-text2"></i> Modifier
</a>
data: function() {
  return {
    searchInput: '',
    buildings: {},
    number: null
  }
}

我收到的错误消息:

Error in v-on handler: "ReferenceError: number is not defined"

【问题讨论】:

  • 为什么不将变量名称从 Number 更改为任何富有表现力的变量名称,例如 Num 或 count NoOfItems?许多错误来自使用保留关键字

标签: javascript vue.js


【解决方案1】:

v-model 采用本地数据道具的名称,因此您不应在此处使用表达式。但是,v-model 仅对用户输入元素有意义(例如,&lt;input&gt;&lt;select&gt; 等),不适用于只读元素,例如 &lt;a&gt;

如果您打算在单击&lt;a&gt; 时将number 设置为1,我建议将该代码移动到已经绑定到click-event 的edit() 方法中:

export default {
  methods: {
    edit() {
      this.number = 1
    }
  }
}

【讨论】: