提问者:小点点

如何从相同的输入加载和更新? (VUEJS)


现在我在一个span标记中显示数据,以及更新它的输入

可以从api加载数据,加载到输入中,然后更新输入,将新的信息发送回来,哪种方式是最好的方法?

    <input v-model='name'> // see john and add john doe
    data(){
    return{
     name:''
    }},
    created(){
     this.data()
     },
    methods:{
    updateData(){
     // send the new name value to /updatename api
    },
    data(){
     this.name = api // john its the value
    }}

共3个答案

匿名用户

是的,这是可能的,首先你需要从服务器加载你的数据并把它放到你的名字属性中,这是在创建生命周期钩子时做的,然后在输入事件之后你需要方法把你的数据发送回服务器。

<input v-model='name' @submit="setData()">

data(){
 return{
  name:''
 }},
async created() {
 await getData();
},
methods:{
 async getData(){
  this.name = await getApiFunction();
 }
 async setData(){
  await setApiFunction(this.name);
 }
}

匿名用户

您可以添加name观察器。 每次name的值更改时,它将运行指定的代码:

<input v-model='name'>
data () {
  return {
    name: ''
  }  
},
watch: {
  name (value) {
    console.log(this.name)
  }
},
methods: {
  setAPIData () {
    this.name = 'API DATA'
  }
}

匿名用户

不是很清楚你在找什么。 我可以理解的是,您希望向用户显示当前值(名称)并让他们更新该值,要做到这一点,从api解析当前值并将其绑定到输入将是更好的选择。

模板:

<input v-model="name">

脚本:

module export{
    data(){
        return {
            name: ''
        }
    },
    created(){
      // parse current value for name using an api
      this.name = parsed_name
    },
    methods:{
       submit(){
           // on submit update name using an api
           // current value this.name
       }
    }
}