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
- 前端框架——Layui(樹形表格treeGrid )前端框架UI
- 樹形結構處理
- 七、基本資料結構(樹形結構)資料結構
- markdown樹形結構生成工具
- 資料結構中樹形結構簡介資料結構
- layui 樹形結構刪除沒有確認,原始碼加入confirm確認提示框UI原始碼
- 字串陣列轉為樹形結構字串陣列
- Android 多級樹形結構顯示Android
- Linux 下樹形結構的檢視Linux
- 如何在 Laravel 中去構建部門樹形結構 APILaravelAPI
- 將List物件列表轉為樹形結構物件
- JAVA樹形結構 通用程式碼(高效能)Java
- iView元件庫之下拉框dropdown(樹形結構)View元件
- Vue遞迴元件實現樹形結構選單Vue遞迴元件
- 聊聊mysql的樹形結構儲存及查詢MySql
- 在vue專案中使用樹形結構的穿梭框Vue
- 值得了解的九種樹形資料結構 - Franco資料結構
- MySQL怎樣透過Adjacency List儲存樹形結構?MySql
- 樹形結構的選單表設計與查詢
- 淺談樹形結構的特性和應用(上):多叉樹,紅黑樹,堆,Trie樹,B樹,B+樹...
- MySql樹形結構(多級選單)查詢設計方案MySql
- 樹結構總結
- 前端樹形Tree資料結構使用-🤸🏻♂️各種姿勢總結前端資料結構
- 樹形資料構造的方法
- JS遞迴過濾樹形結構陣列物件--模糊查詢JS遞迴陣列物件
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- 樹:基本樹形
- 如何快速、且易懂編寫Java遞迴生成樹形選單結構Java遞迴
- 資料結構——樹資料結構
- 資料結構-樹資料結構
- 【Algorithm】樹結構整理Go
- XML 樹結構概述XML
- VUE 實現 Studio 管理後臺(七):樹形結構,檔案樹,節點樹共用一套程式碼 NodeTreeVue
- 設計模式系列之組合模式(Composite Pattern)——樹形結構的處理設計模式
- Vue.js學習(八)—— 樹形結構下拉框元件vue-treeselectVue.js元件
- 03【若依框架解讀】Tree樹形結構的控制(選單,部門)框架