代码之家  ›  专栏  ›  技术社区  ›  Alfred Balle

并根据其他字段更改输入字段

  •  0
  • Alfred Balle  · 技术社区  · 7 年前

    我是新来的 Vue.js Vuetify.js ,并且在执行以下操作时遇到一些问题:

    <v-select v-model="car.type"
        :items="types"
        label="Type"
    ></v-select>
    
    <div v-if="car.type === 'fiat'">
        <v-text-field v-model="car.km" label="KM"></v-text-field>
        <v-text-field v-model="car.color" label="Color"></v-text-field>
    </div>
    
    <div v-else-if="car.type === 'bmw'">
        <v-text-field v-model="car.color.first" label="First color"></v-text-field>
        <v-text-field v-model="car.color.second" label="Second color"></v-text-field>
    </div>
    

    它有点工作,并且正在根据 type ,但我发现了一个错误:

    [Vue warn]: Error in render: "TypeError: undefined is not an object (evaluating '_vm.car.color.first')"
    

    如果我换了 v-model car.colorfirst ,没有嵌套 JSON 对象有效。我猜是因为 car.color.first 还没有定义。 但我需要另一个去工作。

    怎么办,希望有意义?

    现场演示: https://codepen.io/alfredballe84/pen/MBXwKx

    1 回复  |  直到 7 年前
        1
  •  1
  •   Niklesh Raut    7 年前

    我修改了你的html和js

    <div id="app">
      <v-app>
        <v-form>
    
          <v-select v-model="car.type" :items="types" label="Type"></v-select>
    
          <div v-if="car.type === 'fiat'">
            <v-text-field v-model="car.km" label="KM"></v-text-field>
            {{car.km}}
            <v-text-field v-model="car.color" label="Color"></v-text-field>
            {{car.color}}
          </div>
    
          <div v-else-if="car.type === 'bmw'">
            <v-text-field v-model="car.colorMore.first" label="First color"></v-text-field>
            {{car.colorMore.first}}
            <v-text-field v-model="car.colorMore.second" label="Second color"></v-text-field>
            {{car.colorMore.second}}
          </div>
    
        </v-form>
      </v-app>
    </div>
    

    在武伊斯

    new Vue({
      el: "#app",
      data() {
        return {
          car: { "type": "fiat",color:"",colorMore:{} },
          types: ["fiat", "bmw"]
        };
      }
    });
    

    你需要把任何一个空对象(这里 colorMore )绑定或简单地使用元素(这里 color )捆绑。

    代码笔中的分叉url: https://codepen.io/nikleshraut/pen/BPVNMv