bootstrap-treeview 修改源码以实现文本text取值key可配置

写这篇博客的时候,脑海里一直在思考一个问题:

        我修改 bootstrap-treeview 的源码,算侵权了吗?bootstrap-treeview是一个开源的插件,理论上来说是可以修改的,但总感觉有些怪怪的,平时也没注意到这块的信息,有没有对块这比较了解的大佬帮忙解答下。

 

本着学习、分享和记录的心态,先记录下 bootstrap-treeview 修改源码以实现文本text取值key可配置。我主业是Java后端,对前端只是稍有了解,修改的可能不是很规范,还忘大家包涵和指正。

        bootstrap-treeview 默认读取的数据格式是:{text:"显示的文本",nodes:[{text:"子集文本"}]}  ,然而在我们开发过程中,并不一定都是返回的key都是这个,如果因为树形视图而修改返回属性key值,觉得有些没必要,为此,我研究了下 bootstrap-treeview 的源码,并尝试做了些修改,成功实现了 文本text和子集nodes取值可配置。

准备阶段:

  准备好bootstrap-treeview.js 或 bootstrap-treeview.min.js ,我目前的版本是 1.2.0 如果是压缩过的min.js,则需要格式化一下,比较好修改

bootstrap-treeview.min.js 部分源码截图

格式化后的 bootstrap-treeview.min.js 的部分源码截图, 我重命名为 bootstrap-treeview.js

修改显示文本 text 可配置:

  1. 打开 bootstrap-treeview.js,在 f.settings 中增加配置项 text,并设置默认值为 text,初始化时未配置,默认取值 key

        f.settings = {
            injectStyle: !0,
            levels: 2,
            //省略原有的配置项,增加配置项 text,并设置默认值为 text
            text:'text'
        },

  2.当前js文件中搜索 .text 替换成我们的配置项

我当前的版本,.text 仅在 237行中存在两处,直接替换成 [d.options.text] 即可

  3.在我们业务代码初始化 bootstrap-treeview 时增加 text:'自定义的值'

            var _treeData = [{id:"0", name:"顶级菜单", children:result.data}];
            var _treeConf = {
                data: _treeData,         // 数据源
                expandIcon: 'ti-angle-right',
                onhoverColor: "rgba(0, 0, 0, 0.05)",
                selectedBackColor: "#03a9f3",
                collapseIcon: 'ti-angle-down',
                showCheckbox: true,
                multiSelect:false,
                text:'name'    //增加我们刚刚配置项的 text ,并设值为 name 
            }
            _treeConf = u.copyJson(_treeConf, _conf);
            $element.treeview(_treeConf);

因为我当前业务数据返回的文本是 name 中取值,所以我在初始化时,直接配置成 text:'name'

至此, bootstrap-treeview 实现文本内容 text 可配置修改完成,当前读取的数据格式由原来的 {text:"显示的文本"} 修改成 {name:"显示的文本"} 

 

 

本来还想把子集 nodes 也改成可配置的,但无奈,找不到一个公共的对象可以从里面取值,后面有时间再看下,如果有研究出来,到时再来更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值