2017-04-13 78 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