设置<select>的值,而不使用&#39; v-model&#39;

时间:2017-07-31 02:34:40

标签: vue.js vuejs2

我希望有类似下面的Vue模板,但它不适用于属性selectedVal。什么是正确的属性名称? &lt; select:selectedVal =&#34; myList&#34;多个&GT;   &lt; option value =&#34; abc&#34;&gt; ABC&lt; / option&gt; &LT; /选择&GT; 对于&lt; input&gt; bind的prop是值,但对于&lt; select&gt;它似乎没有在任何地方记录。我正在寻找绑定的正确道具的名称。

1 个答案:

答案 0 :(得分:3)

我回答是因为在评论中引用代码段很困难。

我认为您在查看文档here之后提出了这个问题,该文档显示了定义所选项目的优雅方式。

<select v-model="selected">
  <option v-for="option in options" v-bind:value="option.value">
    {{ option.text }}
  </option>
</select>

实际上,我怀疑是否有v-bind道具这样做是因为value is an attribute of input and option,但是selected is not an attribute of select but an attribute of option并且我无法在select中找到任何替代方案。

此外,在浏览了Vue.js的源代码后,我没有看到vue在绑定属性(代码herehere)方面做了很多工作,而不是推送{{{ 1}}进入元素的v-bind列表。

attrs

另一方面,export function addAttr (el: ASTElement, name: string, value: string) { (el.attrs || (el.attrs = [])).push({ name, value }) } 似乎是v模型中的一个特例(参见代码here)。
因此,我通过将select绑定到选项而不是selected,在评论中提供了the solution