layui樹形結構
最近接觸Layui框架,感覺還不錯,就總結一下在使用layui的樹形結構的使用。
在官網上檢視時發現關於layui的使用都是靜態新增的程式碼,如果我想動態新增樹形節點時遇到了很大的問題,官網的靜態示例程式碼如下:
在nodes節點中就是我們需要新增的資料,可以看出來他是一個json陣列形勢,當我將資料拼接成上述的字串進行傳入時,發現它並不能動態的將它編譯成所需的,反而是將字串的每一個字元進行了解析。
只好另找方法,在其官網的論壇上,發現有一人寫的需要將字串轉為json陣列,於是我將字串轉為json陣列傳入時發現還得不到預期結果,於是乎我想是否可以傳入一個陣列,於是乎按我的理解進行了拼接。
程式碼如下:
寫的有點倉促還請諒解
在官網上檢視時發現關於layui的使用都是靜態新增的程式碼,如果我想動態新增樹形節點時遇到了很大的問題,官網的靜態示例程式碼如下:
layui.use(['tree', 'layer'], function(){
var layer = layui.layer
,$ = layui.jquery;
layui.tree({
elem: '#demo1' //指定元素
,target: '_blank' //是否新選項卡開啟(比如節點返回href才有效)
,click: function(item){ //點選節點回撥
layer.msg('當前節名稱:'+ item.name + '<br>全部引數:'+ JSON.stringify(item));
console.log(item);
}
,nodes: [ //節點
{
name: '常用資料夾'
,id: 1
,alias: 'changyong'
,children: [
{
name: '所有未讀(設定跳轉)'
,id: 11
,href: 'http://www.layui.com/'
,alias: 'weidu'
}, {
name: '置頂郵件'
,id: 12
}, {
name: '標籤郵件'
,id: 13
}
]
}, {
name: '我的郵箱'
,id: 2
,spread: true
,children: [
{
name: 'QQ郵箱'
,id: 21
,spread: true
,children: [
{
name: '收件箱'
,id: 211
,children: [
{
name: '所有未讀'
,id: 2111
}, {
name: '置頂郵件'
,id: 2112
}, {
name: '標籤郵件'
,id: 2113
}
]
}, {
name: '已發出的郵件'
,id: 212
}, {
name: '垃圾郵件'
,id: 213
}
]
}, {
name: '阿里雲郵'
,id: 22
,children: [
{
name: '收件箱'
,id: 221
}, {
name: '已發出的郵件'
,id: 222
}, {
name: '垃圾郵件'
,id: 223
}
]
}
]
}
,{
name: '收藏夾'
,id: 3
,alias: 'changyong'
,children: [
{
name: '愛情動作片'
,id: 31
,alias: 'love'
}, {
name: '技術棧'
,id: 12
,children: [
{
name: '前端'
,id: 121
}
,{
name: '全端'
,id: 122
}
]
}
]
}
]
});
在nodes節點中就是我們需要新增的資料,可以看出來他是一個json陣列形勢,當我將資料拼接成上述的字串進行傳入時,發現它並不能動態的將它編譯成所需的,反而是將字串的每一個字元進行了解析。
只好另找方法,在其官網的論壇上,發現有一人寫的需要將字串轉為json陣列,於是我將字串轉為json陣列傳入時發現還得不到預期結果,於是乎我想是否可以傳入一個陣列,於是乎按我的理解進行了拼接。
程式碼如下:
function createTree(data) {
var node = [];
for (var i = 0; i< data.length; i++) {
node.push({
name:'' + data[i].name,
id: data[i].id
});
if (data[i].vehicles.length > 0) {
var child = [];
for(var j = 0; j< data[i].vehicles.length; j++) {
if(isOnLine(data[i].vehicles[j].vin)) {
child.push({
name:data[i].vehicles[j].number + '(線上)',
id: data[i].vehicles[j].vin
});
} else {
child.push({
name:data[i].vehicles[j].number + '(離線)',
id: data[i].vehicles[j].vin
});
}
arr.push(data[i].vehicles[j]);
}
node[i].children = child;
}
}
將node節點傳入便可顯示樹形結構圖。寫的有點倉促還請諒解
相關文章
- LayUI—tree樹形結構的使用UI
- 樹形結構
- layui.tree樹形結構節點判定條件的刪除操作UI
- java樹形結構Java
- 樹形結構處理
- 前端框架——Layui(樹形表格treeGrid )前端框架UI
- 七、基本資料結構(樹形結構)資料結構
- markdown樹形結構生成工具
- 資料結構中樹形結構簡介資料結構
- layui 樹形結構刪除沒有確認,原始碼加入confirm確認提示框UI原始碼
- Linux用樹形結構顯示目錄結構Linux
- 字串陣列轉為樹形結構字串陣列
- php tree類的使用(樹形結構)PHP
- [Swing]樹形結構的實現
- 一個簡單的樹形結構
- 如何在 Laravel 中去構建部門樹形結構 APILaravelAPI
- Linux 下樹形結構的檢視Linux
- 將List物件列表轉為樹形結構物件
- Android 多級樹形結構顯示Android
- 樹形結構的儲存與查詢
- Oracle 樹形結構查詢的特殊用法Oracle
- 28款jQuery Tree 樹形結構外掛jQuery
- JAVA樹形結構 通用程式碼(高效能)Java
- 我做的一個挺拙劣樹形結構
- 樹形結構的處理——組合模式(五)模式
- 樹形結構的處理——組合模式(四)模式
- 樹形結構的處理——組合模式(三)模式
- 樹形結構的處理——組合模式(二)模式
- 樹形結構的處理——組合模式(一)模式
- javascript樹形總結JavaScript
- Vue 結合 D3js 產生的樹形結構。VueJS
- iView元件庫之下拉框dropdown(樹形結構)View元件
- Vue遞迴元件實現樹形結構選單Vue遞迴元件
- 聊聊mysql的樹形結構儲存及查詢MySql
- 迭代查詢 樹形結構及常用的函式函式
- 貢獻一個 Laravel 樹形結構管理包 ClosureTableLaravel
- 如何在Java中返回樹形結構 最佳實踐Java
- 前端樹形Tree資料結構使用-🤸🏻♂️各種姿勢總結前端資料結構