小编ess*_*ahr的帖子

Vuejs共享无线电组件未在渲染上检查

我有一个vue组件,通过额外的标记和样式扩展了本机无线电输入,目的是它可以在整个应用程序中用作常规无线电的替身:

<div class="radios">
  <radio-input name="radioInput" value="one" v-model="options.firstOption">
  <radio-input name="radioInput" value="two" v-model="options.firstOption">
  <radio-input name="radioInput" value="three" v-model="options.firstOption">
</div>
Run Code Online (Sandbox Code Playgroud)

我一直在遵循这里建议的方法(这里是jsfiddle ),但我想添加组件接受v-model属性的能力,这个例子不做.

到目前为止,这是我的.vue组件文件:

<template>
  <span class="radio-control">
    <input
      class="input-bool"
      type="radio"
      :name="name"
      :value="value"
      v-model="radioButtonValue">
  </span>
</template>

<script>
  export default {
    model: {
      prop: 'checked',
    },
    props: {
      name: String,
      value: String,
      checked: String
    },
    computed: {
      radioButtonValue: {
        get: function() {
          return this.checked;
        },
        set: function() {
          this.$emit('input', this.value);
        }
      }
    },
  };
</script>
Run Code Online (Sandbox Code Playgroud)

一切都很好,在变化方面很有效,模型更新.问题是当组件呈现时未应用无线电的已检查属性,因此如果有人点击该页面,则所有无线电显示为空白,直到发生更改事件.

Vue的文档明确声明 " v-model将忽略在任何表单元素上找到的初始值,已检查或选定的属性.它将始终将Vue实例数据视为事实的来源." 正如预期的那样,添加它并没有什么不同.但我很难让原生checked …

html javascript vue.js vuejs2

5
推荐指数
1
解决办法
514
查看次数

标签 统计

html ×1

javascript ×1

vue.js ×1

vuejs2 ×1