vue.js - v-model overwrite input value in VueJS -


i have input

<input type="text" :value="user.firstname" v-model="userinfo.firstname"> 

that in component edit.vue.

in users.vue have router link

<router-link :to="'/users/edit-user/'+user.id"><a>edit</a></router-link> 

and when click takes me on edit component id of actual user on url.

the problem if put v-model="userinfo.firstname" in first input overwrites data bring edit it, name.

if delete v-model="userinfo.firstname" input can see actual value of input, comes database, mean actual name.

i need v-model, in edit page, take new input value , send database.

in normal edit, when click on edit button, suppose see actual data edit it, not empty input.

so why v-model overwrites user.name value(that comes json users, database) , can make see actual value , able send modified value input in database?

i recommend use vuex case. fatman said in answer v-model overrides value property.

this advise how should edit. write fast it's not perfect. learn vuex , make better.

user.vue

<p>{‌{user.firstname}}</p> <p>{‌{user.lastname}}</p> <router-link :to="'/users/edit-user/'+user.rid"><a >edit user</a></router-link> 

edituser.vue

<input  type="text" v-model="user.firstname"> <input  type="text" v-model="user.lastname">  computed: {       user() {           return clone(this.$store.state.currentuser);       }     },  methods: {       gettheuser() {           axios.get("/user/" + this.$route.params.id)             .then((response) => {               //this.user = response.data;               this.$store.commit('setcurrentuser', response.data);             })             .catch(function (res) {               this.$store.commit('clearcurrentuser');             });      },     updateuser() {         // check how token , replace down here         axios.put('/user/' + this.$route.params.id, this.user,             {'headers':{'x-auth-token':localstorage.token}},           {'headers':{'content-type': 'application/json'}})         .then((response) => {           this.$store.commit('setcurrentuser', this.user);          })         .catch((response) => {           console.log('error answer', response)          })       }    } 

store.js

import vue 'vue'; import vuex 'vuex'; vue.use(vuex); export default new vuex.store({   state: {     currentuser: {}   },   mutations: {     setcurrentuser: function (state, users) {       state.currentuser = users;     },     clearcurrentuser: function (state) {       state.currentuser = {};     },   } }) 

in main.js

    import store './store.js';      new vue({      el: '#app',      store,      template: '<app/>',      components: { app }    }) 

Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -