2017-09-24 640 views
0

我有託「貓」vue.js:選擇不觸發事件@change選擇/選項

props: ['cat1'], 

螞蟻這段代碼

<select class="form-control" @change="set_category"> 
    <option value="" disabled>Please select category</option> 

    <option v-for="category in categories" 
      :value="category" 
      :selected="cat1 == category.url">{{ category.name}} 
    </option> 
</select> 

所以這段代碼被稱爲頁面時它的加載和問題是,在加載頁面選項更改後,但它不會觸發@change事件,因爲它我不能實際跟蹤在頁面加載時選擇了哪個選項。 我嘗試了很多版本的V型螞蟻等,但它看到我只是堅持就可以了..

+0

所以,你要當用戶選擇一個選項來改變'cat1'? – imcvampire

+0

請問您可以顯示set_category方法嗎? –

+0

@RichardMatsen set_category方法現在只有console.log('test')用於調試 我想要做什麼,當頁面加載此代碼時,它在prop中稱爲cat1我有一部分url,並且位於:值=「類別」我實際上有整個對象...因爲cat1來自後端我實際上想檢查它們是否相等,我的意思是來自類別對象(category.url)的url和來自道具的url「cat1 」。而且它們是..然後我想通過set_category方法或使用任何其他方法將其綁定... – Sillexx

回答

0

這裏的要求

Vue.directive('binding-change', { 
    update: function (el, binding, vnode) { 
    const model = vnode.data.directives.find(d => d.name === 'model') 
    if (model) { 
     binding.value(model.value) 
    } 
    } 
}) 

,將發出更改事件使用方法如下

一個指令
<select class="form-control" v-binding-change="set_category" v-model="cat1"> 
    <option value="" disabled>Please select category</option> 
    <option v-for="(category, index) in categories" 
     :key="index" 
     :value="category" 
    </option> 
</select> 

methods: { 
    set_category (newValue) { 
    } 
} 

我還沒有用道具(只是一個局部變量)嘗試過它,但我可以說,當綁定變量在後臺更改(不像@change)時,它會發出change事件。

0

Richard Matsen's answer很好。但是,如果您只想跟蹤網頁加載的價值,爲什麼不直接撥打電話created(或mounted)。

created() { 
    this.set_category(); 
} 

這裏是一個jsfiddle