今天被Vue的一個坑給折磨了一天,終於發現是什麼問題,咱們先來模擬一個場景:
代碼以下:javascript
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>vue</title> </head> <body> <div id="app"> <input type="text" v-model='sendJson.name'> <button @click='showName'>打印輸入框的值</button> </div> <script type="text/javascript" src='./vue.min.js'></script> <script type="text/javascript"> new Vue({ el:'#app', data(){ return{ sendJson:{} } }, methods:{ showName(){ console.log(this.sendJson.name) } } }); </script> </body> </html>
咱們進頁面就點按鈕,你猜會輸出什麼?html
是undefined,不算奇怪,你什麼都沒輸入,固然是undefined了。vue
OK,接下來刷新頁面,進去多一步操做,先點擊一下input輸入框,在點擊按鈕,只是多作這一步操做:java
輸出的是空白,在chrome中空白就表明空字符串,能夠修改一下打印結果:console.log(this.sendJson.name === "")
chrome
其實這看起來不是個大問題,可是在個人場景裏問題就大了。app
我要把輸入框內的值做爲一個對象的屬性,問題就來了,看圖:this
這個坑牛逼不,我真是個奇葩。3d