avalonjs 树组件递归渲染后无法获取预期数据

发布于 2022-09-07 20:29:59 字数 1644 浏览 16 评论 0

问题描述

树组件递归显示后,无法正常获取勾选的数据(duplex失效了一样)

问题出现的环境背景及自己尝试过哪些方法

想通过双工duplex的形式,勾选的数据自动存放到数组中,在其他demo中,没问题,但是在树(通过递归:html)上面,失效了

相关代码

// 自己定义了一个组件
<ms-tree :widget="{url: @url, showCheck: true, onReady: treeReady}"></ms-tree>
// 下面是组件的html
<ul>

<li :for="(@index, @el) in @tree">
    <input type="checkbox" ms-attr="{value:@el.id}" data-duplex-changed="@selectOneFun(@el)" ms-duplex="@selected"/>
    <span :click="@openSubTree(el)" :class="[changeIcon(el)?'floder':'file']"></span>
    {{el.name}}
    <div :visible="@el.open" :html="@renderSubTree(@el)">
    </div>
</li>

</ul>
// 所有勾选的数据都把节点的id存放到selected数组中,每次勾选操作都会调用selectOneFun方法
// 下面是基本方法
// select
getSelected: function () {

alert(this.selected)
return this.selected

},
selectOneFun: function (e) {

alert(e.id)
// 直接push进数组,上面的getSelected方法都获取不到
// this.selected.push(e.id)

},
renderSubTree: function (el) {

return "<ms-tree :widget='{tree: @el.subTree}'></ms-tree>"

}

你期待的结果是什么?实际看到的错误信息又是什么?

每次勾选,通过getSelected方法可以获取所有勾选的节点id值,可以实际却只有第一个节点可以获取到,其他节点(通过递归生成的)都获取不到,即使直接push进selected中,getSelected方法都获取不到。就觉得特奇怪,希望大神能指点一下,带上截图

clipboard.png

clipboard.png

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文