Vue數據綁定隱藏的神坑....

今天被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

相關文章
相關標籤/搜索