2017-12-18 222 views
0

我有一個文本輸入v-model綁定它的值爲data。我還希望能夠在v-model值更改時調用我的parse()函數,以便更新也在data上的數組。更新v-模型更改值

<div id="app"> 
    <input 
     id="user-input" 
     type="text" 
     v-model="userInput"> 

    <ul id="parsed-list"> 
     <li v-for="item in parsedInput"> 
      {{ item }} 
     </li> 
    </ul> 
</div> 

new Vue({ 
    el: '#app', 
    data: { 
    userInput: '', 
    parsedInput: [] 
    } 
}) 

let parse = input => { 
    return input.split(',') 
} 

我應該如何去使用的V型變化parse()功能更新data.parsedInput?什麼是適當的Vue這樣做的方式?

回答

1

一個依賴於另一個數據屬性的適當的Vue方式是用computed property,每當userInput變化這樣parsedInput自動更新:

let parse = input => { 
 
    return input.split(',') 
 
} 
 

 
new Vue({ 
 
    el: '#app', 
 
    data: { 
 
    userInput: '', 
 
    }, 
 
    computed: { 
 
    parsedInput() { 
 
     return parse(this.userInput) 
 
    } 
 
    } 
 
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.1/vue.js"></script> 
 
<body> 
 
    <div id="app"> 
 
    <input id="user-input" type="text" v-model="userInput"> 
 

 
    <ul id="parsed-list"> 
 
     <li v-for="item in parsedInput"> 
 
     {{ item }} 
 
     </li> 
 
    </ul> 
 
    </div> 
 
</body>

作爲旁註:聲明parse功能使用前,防止is not defined錯誤。