【问题标题】:V-model not binding in the DOM elementV-model 未绑定到 DOM 元素中
【发布时间】:2019-06-16 06:13:29
【问题描述】:

这是我编写的代码,问题是 v-model 没有绑定 dom 中的数据,我使用的 axios 正在返回值但它没有绑定到 dom 中:

<template>
  <v-container fluid>
    <v-layout>
      <v-flex md4 sm6 offset-sm3>
        <v-card class="card" color="brown">
          <v-card-title class="headline grey--text">Your Card Details</v-card-title>
          <v-flex ma-2>
            <v-form class="form" ref="form" mt-2>
              <v-text-field v-model="info.name"></v-text-field>
              <v-text-field v-model="info.userName"></v-text-field>
              <v-text-field v-model="info.card"></v-text-field>
              <v-text-field v-model="info.expireDate"></v-text-field>
              <v-text-field v-model="info.cvv"></v-text-field>
              <v-btn @click="submit" flat color="success">Submit</v-btn>
              <v-btn @click="reset" flat color="error">Reset</v-btn>
            </v-form>
          </v-flex>
        </v-card>
      </v-flex>
    </v-layout>
  </v-container>
</template>
<script>
import axios from "axios";
export default {
  data() {
    return {
      info: [],
      valid: true
    }
  },
  created() {
    axios
      .get("https://localhost:44311/api/payment-access")
      .then(res => this.info = res.data);
  },
  methods: {
    reset() {
      this.$refs.form.reset();
    },
    submit() {
      axios.get("https://localhost:44311/api/payment-access").then(res => {
        this.info = res.data;
        console.log(this.info);
        console.log("Yippy");
      });
    }
  }
};
</script>
<style scoped>
.card {
  border-radius: 20px;
}
</style>

【问题讨论】:

  • 请以文本形式提供代码
  • 您将info: [] 定义为数组,但稍后您将其用作对象。您应该从 info: {name: '', userName: '', card: '', ...} 开始定义它,您需要在其中指定将用作模型的所有字段。阅读更多关于Change Detection Caveats
  • @BoussadjraBrahim 我尝试上传代码本身,但无法很好地对齐,我是
  • 尝试将其粘贴到此处pastebin.com 并给我链接,我将通过格式化来编辑您的问题
  • @BoussadjraBrahim 我尝试上传代码本身,但无法正确对齐,所以请多多包涵,并提供解决方案如果可以,@ljubadr 我将其声明为数组,但是当我在承诺返回后将 response.data 分配给 info 属性时,它会起作用,但由于某种我不知道它现在不起作用的原因。

标签: javascript vue.js axios vuetify.js


【解决方案1】:

在您以这种方式声明之前,Vue 不会进行深度绑定。 @Ijubadr 试图解释它。

像这样在脚本中的 data() 中声明信息。对象不是数组

info: {name: '', userName: '', card: '', expireDate: '', cvv: ''}

相应地分配来自 axios 的传入数据。暗示!如下所示:

this.info = {
  name: data[0],
  userName: data[1],
  card: data[2],
  expireDate: data[3],
  cvv: data[4]
 }

*根据传入的数据案例数组/对象填充上述信息对象。 它应该工作

希望对您有所帮助。

【讨论】:

  • 感谢您给予我的信任,但您可以删除它并将链接添加到文档Change Detection Caveats
  • ljubadr @Rahul Roy 谢谢,我已经像我在问题中所做的那样完成了绑定,它进展顺利,但是当我控制台日志(this.info)它抛出一个错误,再次感谢跨度>
猜你喜欢
  • 2014-05-20
  • 2018-03-07
  • 1970-01-01
  • 2018-07-29
  • 2021-07-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-14
  • 1970-01-01
相关资源
最近更新 更多