Vue中标签中v-for循环的index值如何作为参数传递给外部方法?

<div> 
    <div class="form-group height35">
        <label  class="col-sm-3 control-label paddingRight0 fontStyle">选择模块</label>
        <div class="col-sm-8 paddingLeft0">
            <select name="" id="" class="form-control" v-model="chooseCurrentModuls">
                <option :value="item.chapterName" v-for="(item,index) in chooseModules" :key="index">{{item.chapterName}}</option>
            </select>
        </div>
    </div>
</div>
<button slot="footer" type="button" class="btn btn-default sameButton sureButton" @click="sureAddToReport()">确定</button>
<button slot="footer" type="button" class="btn btn-default sameButton cancelButton" @click="openJoinReport=false">取消</button>

如上代码,选择模板下拉菜单时,希望将选中的值的index传递给点击“确定”按钮时触发的sureAddToReport方法。但是现在不知道如何将index传递到外部?使用getAttribute也取不到key的值
请问怎么处理这种问题将index传给外部方法呢?


补充说明一下,chooseCurrentModuls=chooseModules[index].chapterName,之所以不用取到的chooseCurrentModuls是因为测试中发现这个值是可以同名的,因此会导致传到后台的其他参数的错误,需要用index确定一下chooseModules中的其他参数

阅读 14.5k
2 个回答

select的v-model已经可以拿到ID了,与chooseModules匹配即可。不需要记录index,反正你记录index的目的也是为了查找选中的那一条

这个 chooseCurrentModuls 不是已经记录吗?
sureAddToReport 方法可以通过chooseModules.filter(_=>_.chapterName === this.chooseCurrentModuls) 拿到对象(也可以将chooseModules,map一下来省去 filter 开销)。

当然也可以直接将 option 的 value 直接绑定为 item,这样就直接拿到对象了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题