2017-04-13 79 views
2

我有幾個卡片的作品,如無線電按鈕。vue 2如何更改v-模型,如果值更改?

<div class="card"> 
    <input 
     checked="" 
     class="card__input" 
     type="radio" 
     v-model="templatePicked" 
     :value="template.value" 
     name="template" 
     :id="template.id" 
    > 
    <label :for="template.id" class="card__label"></label 
    <ui-select 
     name="version" 
     placeholder="Select a version" 
     :keys="{ label: 'text', value: 'value' }" 
     :options="templateVersions" 
     v-model="template" 
    ></ui-select> 
</div> 

所以,當我們點擊選擇項目(UI中選擇),我們爲卡單選按鈕更新idvalue。問題是,如何更新templatePicked?因爲現在它只在單擊單選按鈕時更新。

P.S 我使用vue 2.2.6。 選擇組件:https://josephuspaye.github.io/Keen-UI/#/ui-select 它有@change事件,但我不明白如何在我的情況下使用它。

P.S.S 它實際上在vue 1.0.28中很完美,我在組件上使用了:value.sync="ubuntu"

任何幫助,請!

+0

嗨,也許@select事件對此很有用,例如:@ select =「setTemplatePicked(template)」,然後在方法setTemplatePicked中執行拾取模板的邏輯。 –

+0

@ M.蘇蘭德你是對的!它現在有效,謝謝。你可以寫答案,我會把它標爲最好的。但是爲什麼當我在ui-select中選擇另一個選項並且單選按鈕轉爲未選中時呢? – Hola

+0

嘗試把{{templatePicked}}放到你的html中,看看templatePicked的值是如何變化的,我猜你在某個地方設置了錯誤 –

回答

2

您可以收聽@select事件(選擇某個項目時)或例如@focus。有關更多選項,請參閱https://josephuspaye.github.io/Keen-UI/#/ui-select(活動)。

<ui-select 
    name="version" 
    placeholder="Select a version" 
    :keys="{ label: 'text', value: 'value' }" 
    :options="templateVersions" 
    v-model="template" 
    @select="setTemplatePicked(template)" 
></ui-select> 

接下來添加一個方法(例如setTemplatePicked),它設置所選模板。

+0

有點額外的解釋:https://vuejs.org /v2/guide/migration.html#once-and-sync-Modifiers-on-v-bind-removed –

+0

它適用於點擊。但我注意到,如果我選擇一個選項作爲默認值,那麼如何從模板獲取數據並將其設置爲templatePicked?最初,頁面加載時 – Hola