你好,有个问题想请教一下。
原生html引用element ui,页面样式都可以,但是this.$refs为空,导致一些组件的获取值没法用。
这是我的代码截图,我用的是【Tree 树形控件】,点击提交按钮,获取已选中的值,但是返回为空,获取不到,
(标签-前端|关键词-树形控件)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
看起来你在使用Element UI的
el-tree
组件时遇到了问题,this.$refs
在mounted
钩子函数中是空的。这是因为Vue的$refs
是在元素被渲染到DOM后才填充的,所以在mounted
钩子里可能还没有被填充完成。解决这个问题的一种方法是在事件触发后获取el-tree
的值,例如点击提交按钮之后。首先,确保你已经在Vue实例中正确地定义了
$refs
,像这样:<el-tree ref="tree" ...>
然后,在你的提交方法中,你需要等待DOM更新后再尝试获取选中的节点。可以使用Vue的
nextTick
方法来确保在DOM更新后执行回调函数:submit: function () { this.$nextTick(() => { // 获取选中的节点 const selectedNodes = this.$refs.tree.store._getAllNodes().filter(node => node.checked); // 将选中的节点ID转换为数组 const chose_new = selectedNodes.map(node => node.data.id); // 将结果设置到chose_new并发送请求 this.chose_new = chose_new; console.log('Selected nodes:', chose_new); // 这里可以调用你的发送请求的方法,比如:this.sendRequest(); }); },
记得将
sendRequest()
替换为你实际的发送请求的函数名称。这段代码会在点击提交按钮后获取选中的树节点,并将其ID保存到chose_new
数组中。如果你还需要将这些值传递给隐藏输入框,可以在获取选中节点后将其添加到input的value属性中:
document.getElementById('ids').value = chose_new.join(',');
完整的Vue实例代码示例:
new Vue({ el: '#app', data: function() { return { data: [], // 所有的床位数据 chose_data: [], // 返回已选中的床位 defaultProps: { children: 'childlist', label: 'label' }, ids: '', chose_new: [], // 要提交选中的床位 }; }, mounted() { console.log(this.$refs); // 这里可能会打印出空对象,因为此时DOM还未完全渲染完成 }, created() { this.ids = inputVal; this.getaddress_hospital(); }, methods: { getaddress_hospital: function() {...}, // 获取位置的方法 submit: function() { this.$nextTick(() => { const selectedNodes = this.$refs.tree.store._getAllNodes().filter(node => node.checked); const chose_new = selectedNodes.map(node => node.data.id); this.chose_new = chose_new; console.log('Selected nodes:', chose_new); document.getElementById('ids').value = chose_new.join(','); // 这里可以调用你的发送请求的方法,比如:this.sendRequest(); }); }, }, });
这样应该就可以正常获取到已选中的树节点并将其显示在隐藏输入框中了。
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 Questasim Error: (vcom-13)
- ¥15 船舶旋回实验matlab
- ¥30 SQL 数组,游标,递归覆盖原值
- ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
- ¥15 有关于推荐系统jupyter
- ¥20 gitlab 中文路径,无法下载
- ¥15 用动态规划算法均分纸牌
- ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据
- ¥15 关于树的路径求解问题
- ¥15 yolo在训练时候出现File "D:\yolo\yolov5-7.0\train.py"line 638,in <module>