vue 动态添加 v-on 属性,最优的写法是什么样的?

<el-col :span="items[item].col || 12" class="detail-item" v-for="item in table['items']" :key="item.id">
    <template v-if="table.modal.modifyModel && items[item].editable!==false">
        <el-select v-model="table.formData[items[item].name]" :placeholder="items[item].label" v-if="items[item].type==='select'" @change="items[item].changeFunc()">
          <el-option :label="opt.LABEL" :value="opt.VALUE" :key="opt.KEY" v-for="opt in items[item].options"></el-option>
        </el-select>
        <el-input v-model="table.formData[items[item].name]" v-else></el-input>
    </template>
</el-col>

我想给el-select动态添加上@change属性,因为不是每个循环里面都有items[item].changeFunc这个参,所以没有参的时候是不需要@change的。

写成@change="items[item].changeFunc() ||''"会报错not function
写成@change="items[item].changeFunc() || return true"也不行
只留@change="items[item].changeFunc()"这样当点击别的没有改属性的select也是报错not function
用v-if判断那就变成写两行一样的 只是一个有@change 一个没有 会有点冗余

不知道vue的语法里有可以实现这个简单需求的吗?

阅读 3.6k
1 个回答
@change="items[item].changeFunc && items[item].changeFunc()"
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题