鍍金池/ 問(wèn)答/HTML/ vuejs 復(fù)選框問(wèn)題

vuejs 復(fù)選框問(wèn)題

圖片描述

圖片描述

clipboard.png

clipboard.png

代碼是使用 vuejs 的 v-model 綁定了多選框,但是頁(yè)面上總是顯示一個(gè)中括號(hào)"[]",請(qǐng)教如何去掉這個(gè)呢"[]"呢?
還有就是選擇之后的效果,如何去掉引號(hào)、逗號(hào)、中括號(hào)呢

回答
編輯回答
使勁操

我有個(gè)比較拙劣的想法 代碼如下:

<div id="app">

    <p v-html="amessage"></p>
    <input type="checkbox" value="pingguo" v-model="message">
    <input type="checkbox" value="xiangjiao" v-model="message">
    <input type="checkbox" value="chengzi" v-model="message">

</div>
<script>
    new Vue({
        el: "#app",
        data() {
            return {
                message: []
            }
        },
        computed: {
            amessage: function () {
                let obj = ''
                this.message.forEach(function (item) {
                    console.log(item)
                    obj = obj + " " + item
                })
                return obj
            }
        }
    })
</script>

使用computed可以實(shí)現(xiàn) 這是效果圖

clipboard.png

2017年4月7日 03:22
編輯回答
維她命

題主你得明白這里面的原理。

{{message}} 意味著將 message 這個(gè)對(duì)象輸出到 DOM 里,因?yàn)樗念愋筒还潭ǎ匀灰?jīng)過(guò)轉(zhuǎn)換。這里你用的是復(fù)選框,所以 message 就會(huì)是一個(gè)數(shù)組,所以上面輸出就會(huì)帶有 []。接下來(lái)你的 value 是香蕉蘋(píng)果這樣的表情符號(hào),JS 會(huì)把它當(dāng)文本處理,所以輸出的自然帶有引號(hào)。

你想輸出不帶括號(hào)引號(hào),就要避免自動(dòng)轉(zhuǎn)換。所以模板里改成這樣既可:

<div class="message">
  <template v-for="item in message">
    {{item}}
  </template>
</div>
2017年5月9日 04:26