鍍金池/ 問答/HTML/ v-if/v-show不能動態(tài)響應

v-if/v-show不能動態(tài)響應

組件中有一個功能,通過v-show實現(xiàn)選中單選框"僅標題"時隱藏權重選擇框,單選框"標題+正文"被選中時顯示權重選擇框
在data中加入了變量isWeight,通過單選框的@click進行改變。
但是應用中發(fā)現(xiàn)初始x為true時權重選擇始終顯示,初始x為false時權重選擇始終隱藏。
為什么data數(shù)據(jù)中改變時v-if/v-show都不能動態(tài)響應呢?

<div class="normal-left-content">
    <div class="positionModel">
        <el-radio-group v-model="keyPosition">
            <el-radio label="TITLE" @click="titleClick('positionKey')">僅標題</el-radio>
            <el-radio label="TITLE_CONTENT"  @click="titleClick('positioCon')" style="margin-left:20px;">標題+正文</el-radio>
        </el-radio-group>
    </div>
</div> 
<div v-show="isWeight == true" class="normal-left-content exclude-words">
    <div><span class="spantext">權重選擇</span></div>
    <el-radio-group v-model="weightSelect">
        <el-radio label='false' @click="weightSet(false)">不設置權重</el-radio>
        <el-radio label="true" style="margin-left:20px;" @click="weightSet(true)">設置權重</el-radio>
    </el-radio-group>
</div>

<script>
    data: function(){ 
        return {
            isWeight: false
        }
    }
    methods{
        titleClick:function(val){
            if(val == 'positionKey') {
                this.isWeight = false;
            } else if(val == 'positioCon') {
                this.isWeight = true;
        }
    }
</script>
回答
編輯回答
傻叼

el-radio不支持click這個事件,你得換成change。
注意看文檔:http://element-cn.eleme.io/#/...

2017年10月30日 11:26
編輯回答
尐飯團

v-show="isWeight == true" 改成 v-show="isWeight"

2017年1月23日 00:56
編輯回答
朕略萌

你可以試試用computed,或者watch

2017年3月23日 17:37
編輯回答
憶當年

你的賦值沒有觸發(fā)vue視圖更新, 你需要用 $set去賦值才行,要么在你賦值后添加$forceUpdate

2017年3月21日 16:58
編輯回答
愛礙唉

你都沒有實例化vue
clipboard.png
這樣寫是不行的

2017年12月27日 04:47
編輯回答
淡墨

將@click改成@click.native.prevent后解決了該問題

2017年12月21日 01:12