91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解Angular結合zTree異步加載節點數據

發布時間:2020-08-23 14:20:22 來源:腳本之家 閱讀:185 作者:NeverCtrl_C 欄目:web開發

1 前提準備

1.1 新建一個angular4項目

參考:https://www.jb51.net/article/119668.htm

詳解Angular結合zTree異步加載節點數據

1.2 去zTree官網下載zTree

zTree官網:點擊前往

三少使用的版本:點擊前往

詳解Angular結合zTree異步加載節點數據

1.3 參考博客

https://www.jb51.net/article/133284.htm

2 編程步驟

  詳解Angular結合zTree異步加載節點數據

從打印出zTree對象可以看出,zTree對象利用init方法來實現zTree結構;init方法接收三個參數

參數1:一個ul標簽的DOM節點對象

參數2:基本配置對象

參數3:標題信息數組

2.1 在index.html中引入相關js、css

詳解Angular結合zTree異步加載節點數據

<!doctype html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>TestZtree</title>
 <base href="/" rel="external nofollow" >

 <meta name="viewport" content="width=device-width, initial-scale=1">
 <link rel="icon" type="image/x-icon" href="favicon.ico" rel="external nofollow" >

 <link rel="stylesheet" type="text/css" href="./assets/zTree/css/zTreeStyle/zTreeStyle.css" rel="external nofollow" >
 <link rel="stylesheet" type="text/css" href="./assets/zTree/css/demo.css" rel="external nofollow" >
 <script src="./assets/zTree/js/jquery-1.4.4.min.js"></script>
 <script src="./assets/zTree/js/jquery.ztree.core.js"></script>
</head>
<body>
 <app-root></app-root>
</body>
</html>
View Code

2.2 在TS文件中聲明jquery對象

declare var $ : any;

2.3 在TS文件中編寫代碼

    

詳解Angular結合zTree異步加載節點數據

 
import { Component, OnInit } from '@angular/core';
declare var $ : any;
@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {

 // setting = {
 // view: {
 // showLine: true,
 // showIcon: true,
 // fontCss: this.getFont
 // },
 // data: {
 // simpleData: {
 // enable: true,
 // idKey: 'id',
 // pIdKey: 'pId'
 // }
 // },
 // callback: {
 // onClick: this.onCzTreeOnClick
 // }
 // };
 // zNodes = [
 // {id: 1, pId: 0, name: '1 一級標題', open: true, iconOpen:"assets/zTree/css/zTreeStyle/img/diy/1_open.png", iconClose:"assets/zTree/css/zTreeStyle/img/diy/1_close.png"},
 // {id: 11, pId: 1, name: '1.1 二級標題', open: true, font:{'background-color':'skyblue', 'color':'white'}},
 // {id: 111, pId: 11, name: '1.1.1 三級標題 -> 博客園', url: 'http://www.cnblogs.com/NeverCtrl-C/'},
 // {id: 112, pId: 11, name: '1.1.2 三級標題 -> 單擊', click: "alert('你單擊了')"},
 // {id: 12, pId: 1, name: '1.2 二級標題'},
 // {id: 2, pId: 0, name: '2 一級標題'}
 // ]
 // getFont(treeId, node) {
 // return node.font ? node.font : {};
 // }
 // onCzTreeOnClick(event, treeId, treeNode, clickFlag) {
 // alert(treeNode.name);
 // } 
 setting = {
 data: {
 simpleData: {
 enable: true
 }
 }
 };
 zNodes = [
 {id: 1, pId: 0, name: '1 一級標題'},
 {id: 11, pId: 1, name: '1.1 二級標題'},
 {id: 111, pId: 11, name: '1.1.1 三級標題'},
 {id: 112, pId: 11, name: '1.1.2 三級標題'},
 {id: 12, pId: 1, name: '1.2 二級標題'},
 {id: 2, pId: 0, name: '2 一級標題'}
 ];
 constructor() { }
 ngOnInit() { 
 console.log($);
 console.log($.fn.zTree);
 $.fn.zTree.init($("#ztree"),this.setting,this.zNodes);
 }
}
View Code

2.4 在組件HTML中編寫代碼

<ul class="ztree"><ul></ul>

2.5 效果展示

詳解Angular結合zTree異步加載節點數據

3 zTree基本功能

3.1 不顯示連接線

3.1.1 官方文檔

不顯示標題之間的連接線

詳解Angular結合zTree異步加載節點數據

3.1.2 編程步驟

在基本配置對象中指定showLine屬性的值為false即可

 setting = {
 data: {
 simpleData: {
 enable: true
 }
 },
 view: {
 showLine: false
 }
 };

3.2 不顯示節點圖標

3.2.1 官方文檔

去掉節點前面的圖標

詳解Angular結合zTree異步加載節點數據

3.2.2 編程步驟

將基本配置對象的showIcon屬性設為false即可

詳解Angular結合zTree異步加載節點數據

setting = {
 data: {
 simpleData: {
 enable: true
 }
 },
 view: {
 showLine: false,
 showIcon: false
 }
 };
View Code

3.3 自定義節點圖標

3.3.1 官方文檔

更改節點的圖標

詳解Angular結合zTree異步加載節點數據

3.3.2 編程步驟

為treeNode節點數據設置icon/iconOpen/iconClose屬性即可

詳解Angular結合zTree異步加載節點數據

3.4 自定義字體

3.4.1 官方文檔

更改節點字體的樣式

詳解Angular結合zTree異步加載節點數據

3.4.2 編程步驟

為treeNode節點數據設置font屬性即可,font屬性的值是一個對象,該對象的內容和style的數據一樣

詳解Angular結合zTree異步加載節點數據

3.4.3 效果展示

詳解Angular結合zTree異步加載節點數據

3.5 超鏈接

3.5.1 官方文檔

點擊節點標題就會自動跳轉到對應的url

注意01:click屬性只能進行最簡單的 click 事件操作。相當于 的內容。 如果操作較復雜,請使用 onClick 事件回調函數。

詳解Angular結合zTree異步加載節點數據

3.5.2 編程步驟

為treeNode節點數據設置url、click屬性即可

技巧01:設置click屬性時,屬性值必須是一些簡單的onClick事件

技巧02:設置target屬性時,屬性值有 _blank 和 _self

_blank -> 用一個新窗口打開

_self -> 在原來的窗口打開

詳解Angular結合zTree異步加載節點數據

 zNodes = [
 {id: 1, pId: 0, name: '1 一級標題', open: true, iconOpen:"assets/zTree/css/zTreeStyle/img/diy/1_open.png", iconClose:"assets/zTree/css/zTreeStyle/img/diy/1_close.png"},
 {id: 11, pId: 1, name: '1.1 二級標題', open: true, font:{'background-color':'skyblue', 'color':'white'}},
 {id: 111, pId: 11, name: '1.1.1 三級標題 -> 博客園1', url: 'http://www.cnblogs.com/NeverCtrl-C/', target: '_blank'},
 {id: 113, pId: 11, name: '1.1.1 三級標題 -> 博客園2', url: 'http://www.cnblogs.com/NeverCtrl-C/', target: '_self'},
 {id: 112, pId: 11, name: '1.1.2 三級標題 -> 單擊', click: "alert('你單擊了')"},
 {id: 12, pId: 1, name: '1.2 二級標題'},
 {id: 2, pId: 0, name: '2 一級標題'}
 ]
View Code

3.6 單擊控制

3.6.1 官方文檔

點擊節點標題時觸發相應的方法

技巧01:在angular中可以利用這個用法來實現路由跳轉

詳解Angular結合zTree異步加載節點數據

3.6.2 編程步驟

設置基本配置對象的onClick屬性

技巧01:onClick屬性值是一個方法的引用,我們需要自己編寫這個方法

詳解Angular結合zTree異步加載節點數據

 setting = {
 view: {
 showLine: true,
 showIcon: true,
 fontCss: this.getFont
 },
 data: {
 simpleData: {
 enable: true,
 idKey: 'id',
 pIdKey: 'pId'
 }
 },
 callback: {
 onClick: this.onCzTreeOnClick
 }
 };
View Code

編寫onClick觸發方法

詳解Angular結合zTree異步加載節點數據

 onCzTreeOnClick(event, treeId, treeNode, clickFlag) {
 alert(treeNode.name);
 } 
View Code

3.6.3 代碼匯總

import { Component, OnInit } from '@angular/core';
declare var $ : any;
@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
 setting = {
 view: {
 showLine: true,
 showIcon: true,
 fontCss: this.getFont
 },
 data: {
 simpleData: {
 enable: true,
 idKey: 'id',
 pIdKey: 'pId'
 }
 },
 callback: {
 onClick: this.onCzTreeOnClick
 },
 // async: {
 // enable: true,
 // url:"http://localhost:3000/data",
 // type: "get",
 // // autoParam:["id", "name=n", "level=lv"],
 // // otherParam:{"otherParam":"zTreeAsyncTest"},
 // dataFilter: this.filter
 // }
 };
 zNodes = [
 {id: 1, pId: 0, name: '1 一級標題', open: true, iconOpen:"assets/zTree/css/zTreeStyle/img/diy/1_open.png", iconClose:"assets/zTree/css/zTreeStyle/img/diy/1_close.png"},
 {id: 11, pId: 1, name: '1.1 二級標題', open: true, font:{'background-color':'skyblue', 'color':'white'}},
 {id: 111, pId: 11, name: '1.1.1 三級標題 -> 博客園1', url: 'http://www.cnblogs.com/NeverCtrl-C/', target: '_blank'},
 {id: 113, pId: 11, name: '1.1.1 三級標題 -> 博客園2', url: 'http://www.cnblogs.com/NeverCtrl-C/', target: '_self'},
 {id: 112, pId: 11, name: '1.1.2 三級標題 -> 單擊', click: "alert('你單擊了')"},
 {id: 12, pId: 1, name: '1.2 二級標題'},
 {id: 2, pId: 0, name: '2 一級標題'}
 ]
 getFont(treeId, node) {
 return node.font ? node.font : {};
 }
 // filter(treeId, parentNode,responseData) {
 // console.log(responseData);
 // if (responseData) {
 // for(var i =0; i < responseData.length; i++) {
 // responseData[i].name += "動態節點數據" + responseData[i].id;
 // }
 // }
 // return responseData;
 // }
 onCzTreeOnClick(event, treeId, treeNode, clickFlag) {
 alert(treeNode.name);
 } 
 constructor() { } 
 ngOnInit() { 
 console.log('打印輸出jquery對象');
 console.log($);
 console.log('但因輸出zTree對象');
 console.log($.fn.zTree);
 $.fn.zTree.init($("#ztree"),this.setting,this.zNodes);
 // $.fn.zTree.init($("#ztree"),this.setting);
 }
}
View Code

3.7 異步加載節點數據

3.7.1 官方文檔

節點的數據是從后臺進行獲取的

詳解Angular結合zTree異步加載節點數據

3.7.2 編程步驟

技巧01:異步加載節點數據時init方法不用傳遞第三個參數

詳解Angular結合zTree異步加載節點數據

> 準備一個后臺用于返回JSON格式的數據

技巧01:返回的JSON數據是一個列表,格式為

[
 {
 "id": 1,
 "pId": 0,
 "name": "1 one"
 },
 {
 "id": 2,
 "pId": 0,
 "name": "2 two"
 }
 ]

技巧02:三少偷懶,是利用json-server模擬的后臺數據,哈哈;json-server

> 設置基本配置對象的async屬性

詳解Angular結合zTree異步加載節點數據

 setting = {
 view: {
 showLine: true,
 showIcon: true,
 fontCss: this.getFont
 },
 data: {
 simpleData: {
 enable: true,
 idKey: 'id',
 pIdKey: 'pId'
 }
 },
 callback: {
 onClick: this.onCzTreeOnClick
 },
 async: {
 enable: true,
 url:"http://localhost:3000/data",
 type: "get",
 // autoParam:["id", "name=n", "level=lv"],
 // otherParam:{"otherParam":"zTreeAsyncTest"},
 dataFilter: this.filter
 }
 };
View Code

> 編寫響應數據處理方法

詳解Angular結合zTree異步加載節點數據

 filter(treeId, parentNode,responseData) {
 console.log(responseData);
 if (responseData) {
 for(var i =0; i < responseData.length; i++) {
 responseData[i].name += "動態節點數據" + responseData[i].id;
 }
 }
 return responseData;
 }
View Code

3.7.3 代碼總匯

{
 "data": 
 [
 {
 "id": 1,
 "pId": 0,
 "name": "1 one"
 },
 {
 "id": 11,
 "pId": 1,
 "name": "1.1 oneToOne"
 },
 {
 "id": 12,
 "pId": 1,
 "name": "1.2 oneToTwo"
 },
 {
 "id": 2,
 "pId": 0,
 "name": "2 two"
 }
 ]
}
模擬后臺響應數據
<ul class="ztree"><ul></ul>
HTML
import { Component, OnInit } from '@angular/core';
declare var $ : any;

@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {

 setting = {
 view: {
 showLine: true,
 showIcon: true,
 fontCss: this.getFont
 },
 data: {
 simpleData: {
 enable: true,
 idKey: 'id',
 pIdKey: 'pId'
 }
 },
 callback: {
 onClick: this.onCzTreeOnClick
 },
 async: {
 enable: true,
 url:"http://localhost:3000/data",
 type: "get",
 // autoParam:["id", "name=n", "level=lv"],
 // otherParam:{"otherParam":"zTreeAsyncTest"},
 dataFilter: this.filter
 }
 };

 // zNodes = [
 // {id: 1, pId: 0, name: '1 一級標題', open: true, iconOpen:"assets/zTree/css/zTreeStyle/img/diy/1_open.png", iconClose:"assets/zTree/css/zTreeStyle/img/diy/1_close.png"},
 // {id: 11, pId: 1, name: '1.1 二級標題', open: true, font:{'background-color':'skyblue', 'color':'white'}},
 // {id: 111, pId: 11, name: '1.1.1 三級標題 -> 博客園1', url: 'http://www.cnblogs.com/NeverCtrl-C/', target: '_blank'},
 // {id: 113, pId: 11, name: '1.1.1 三級標題 -> 博客園2', url: 'http://www.cnblogs.com/NeverCtrl-C/', target: '_self'},
 // {id: 112, pId: 11, name: '1.1.2 三級標題 -> 單擊', click: "alert('你單擊了')"},
 // {id: 12, pId: 1, name: '1.2 二級標題'},
 // {id: 2, pId: 0, name: '2 一級標題'}
 // ]

 getFont(treeId, node) {
 return node.font ? node.font : {};
 }

 filter(treeId, parentNode,responseData) {
 console.log(responseData);
 if (responseData) {
 for(var i =0; i < responseData.length; i++) {
 responseData[i].name += "動態節點數據" + responseData[i].id;
 }
 }
 return responseData;
 }

 onCzTreeOnClick(event, treeId, treeNode, clickFlag) {
 alert(treeNode.name);
 } 

 constructor() { }
 
 ngOnInit() { 
 console.log('打印輸出jquery對象');
 console.log($);
 console.log('但因輸出zTree對象');
 console.log($.fn.zTree);
 // $.fn.zTree.init($("#ztree"),this.setting,this.zNodes);
 $.fn.zTree.init($("#ztree"),this.setting);
 }
}
TS

3.7.4 效果展示

詳解Angular結合zTree異步加載節點數據

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吐鲁番市| 石楼县| 三穗县| 沅江市| 南木林县| 张家港市| 寿光市| 简阳市| 金堂县| 贡嘎县| 正阳县| 敖汉旗| 黑水县| 邯郸县| 二连浩特市| 阿合奇县| 阳谷县| 怀来县| 仁寿县| 富川| 南平市| 田林县| 易门县| 新源县| 阿拉善右旗| 衡阳县| 河池市| 枣阳市| 怀宁县| 淳安县| 黄大仙区| 清涧县| 花莲县| 铜川市| 黄石市| 泗水县| 宜黄县| 资源县| 顺昌县| 宁城县| 岳阳县|