Javascript Vue警告未设置属性,即使已设置

Javascript Vue警告未设置属性,即使已设置,javascript,vue.js,Javascript,Vue.js,我有一个表单,其中的输入绑定到带有v-model的vue实例。有一个文本框和几个复选框。所有绑定属性都在my JS的数据部分初始化。尽管如此,vue警告说属性“未在实例上定义,但在呈现过程中被引用”。尽管如此,页面仍使用正确的初始化值正确呈现。此外,这些警告仅针对复选框而不是文本输入弹出 我完全不知道这是为什么还是一个问题(一切正常;只有控制台中出现的大量警告才会让我暂停) HTML JS小提琴: 编辑:我复制并粘贴了我的输入,并且没有将v-bind:for更改回for。我现在也意识到控制台警告

我有一个表单,其中的输入绑定到带有v-model的vue实例。有一个文本框和几个复选框。所有绑定属性都在my JS的数据部分初始化。尽管如此,vue警告说属性“未在实例上定义,但在呈现过程中被引用”。尽管如此,页面仍使用正确的初始化值正确呈现。此外,这些警告仅针对复选框而不是文本输入弹出

我完全不知道这是为什么还是一个问题(一切正常;只有控制台中出现的大量警告才会让我暂停)

HTML

JS小提琴:


编辑:我复制并粘贴了我的输入,并且没有将
v-bind:for
更改回
for
。我现在也意识到控制台警告明确地说是“scanOS”,而不是“userData.scanOS”。我想这就是我将变量命名为与元素ID相同的变量所得到的结果。…

您将字符串绑定为变量。尝试将标签标记中出现的所有
v-bind:for=“
替换为
for=“
”。因为对于ex,v-bind:for=“scanOS”中的scanOS是一个字符串,所以Vuejs找不到变量
scanOS

<div id="app">
  <h2>Scan:</h2>
  <form id="formNewScan"  @submit="onNewScanSubmit">
    <div class="form-group row">
      <label class="col-form-label" for="scanName">Scan Name:</label>
      <div class="col-md-10">
        <input class="form-control col-md-10" id="scanName" type="text" placeholder="MyScan" v-model="userData.scanName"/>
      </div>
    </div>
    <hr class="my-3"/>
    <div class="form-group row">

      <input id="scanOS" type="checkbox" v-model="userData.scanOS"/>
      <label class="col-form-label" v-bind:for="scanOS" >OS Scan</label>
      <input id="scanFF" type="checkbox" v-model="userData.scanFF"/>
      <label class="col-form-label" v-bind:for="scanFF" >Firefox Scan</label>
      <input id="scanHTTPD" type="checkbox" v-model="userData.scanHTTPD"/>
      <label class="col-form-label" v-bind:for="scanHTTPD" >Apache httpd Scan</label>
      <input id="scanTC" type="checkbox" v-model="userData.scanTC"/>
      <label class="col-form-label" v-bind:for="scanTC" >Apache Tomcat Scan</label>
      <input id="scanManual" type="checkbox" v-model="userData.scanManual"/>
      <label class="col-form-label" v-bind:for="scanManual" >Grab System Info</label>
      <input id="scanSCC" type="checkbox" v-model="userData.scanSCC"/>
      <label class="col-form-label" v-bind:for="scanSCC" >SCC</label>

    </div>
  </form>
</div>
    
new Vue({
  el: '#app',
  data: {
    userData: {
      scanName: "",
      scanOS: true,
      scanFF: true,
      scanHTTPD: false,
      scanTC: false,
      scanManual: false,
      scanSCC: false,
    },
  },
  methods: {
    onNewScanSubmit: function() {
        console.log("Hello")
    }
  }
})