Angular2整合其他插件的方法
前言:現(xiàn)在有很多朋友在接觸Angular2的時候,總是不可避免的會使用一些其他的第3方的插件,而這些插件可能都是基于jQuery的,而且也沒有對應(yīng)的angular2的版本,這里我就來講解一下,在這種情況下,如何整合第3方的jQuery插件。我們以Angular2整合zTree為例來說明整合的思路及過程。
zTree官方網(wǎng)站:http://www.treejs.cn/v3/main.php#_zTreeInfo
1.一般我在想要將像zTree這種插件集成進(jìn)來的時候,我會先直接去看zTree它們的在線例子,比如說這個例子:
https://github.com/zTree/zTree_v3/blob/master/demo/cn/super/metro.html
效果圖是這樣的:

2.看到這個效果之后,我們再來看這個例子的代碼:關(guān)鍵代碼在這里:
$(document).ready(function(){
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
});
這段代碼中使用了jQuery,對吧,那我們要集成zTree進(jìn)來的話,就必須先把jQuery引入進(jìn)來。那我們先不管怎么來集成zTree,我們先來解決如何將jQuery引入進(jìn)來的問題:
3.引入jQuery到angular2項(xiàng)目中,當(dāng)然,如果你使用的插件沒有依賴jQuery的話可以跳過這個步驟,不過一般第3方插件都依賴它,對吧。引入jQuery的話,就比較簡單,只要在index.html文件中引入進(jìn)來就可以了:
<script src="node_modules/jquery/dist/jquery.min.js"></script>
引入進(jìn)來之后,我們需要測試下,jQuery是否成功引入進(jìn)來。我們使用ng g c demo命令生成一個組件來測試jQuery是否成功引入:
題")你會看到,angular-cli已經(jīng)幫我們生成了必要的文件,然后我們打開demo.component.ts文件,在import語句后面添加以下內(nèi)容:
declare var $ : any;
import { Component, OnInit } from '@angular/core';declare var $ : any;
@Component({selector: 'app-demo',templateUrl: './demo.component.html',styleUrls: ['./demo.component.css']})export class DemoComponent implements OnInit {
constructor() { }
ngOnInit() {console.log($);}
}
上面代碼添加完成之后,查看瀏覽器的控制臺輸出:
題")會發(fā)現(xiàn)輸出的就是我們平時使用到的jquery對象$。到此,我們就算成功引入jQuery到項(xiàng)目中了。
4.將zTree的js庫和css庫引入到項(xiàng)目中,在index.html文件中我們添加以下代碼:
<link rel="stylesheet" type="text/css" href="./assets/zTree/css/metroStyle/metroStyle.css" rel="external nofollow" > <script src="./assets/zTree/js/jquery.ztree.core.min.js"></script>```這樣之后,我們就可以測試zTree是否正常引入進(jìn)來了,我們在demo.component.ts文件中的ngOnInit方法中添加以下代碼:```console.log($.fn.zTree);```查看控制臺會發(fā)現(xiàn),以下輸出:題")在輸出的內(nèi)容我們可以看到,有zTree用來初始化的init方法,這樣我們就可以真正的來寫一個zTree的例子了。
5.zTree例子
我們通過查看zTree的初始化代碼,會發(fā)現(xiàn),需要3個參數(shù),其中第一個參數(shù)是一個jQuery的對象,第二個參數(shù)是zTree的配置對象,具體可以查看zTree的官方文檔來看有哪些參數(shù)可以設(shè)置(http://www.treejs.cn/v3/api.php),第三個參數(shù)是用來出事zTree節(jié)點(diǎn)的數(shù)據(jù)。
這里我們直接使用zTree中demo的代碼直接復(fù)制到demo.component.ts文件中:
import { Component, OnInit } from '@angular/core';
declare var $ : any;
@Component({
selector: 'app-demo',
templateUrl: './demo.component.html',
styleUrls: ['./demo.component.css']
})
export class DemoComponent implements OnInit {
setting = {
data: {
simpleData: {
enable: true
}
}
};
zNodes = [
{ id: 1, pId: 0, name: "父節(jié)點(diǎn)1 - 展開", open: true },
{ id: 11, pId: 1, name: "父節(jié)點(diǎn)11 - 折疊" },
{ id: 111, pId: 11, name: "葉子節(jié)點(diǎn)111" },
{ id: 112, pId: 11, name: "葉子節(jié)點(diǎn)112" },
{ id: 113, pId: 11, name: "葉子節(jié)點(diǎn)113" },
{ id: 114, pId: 11, name: "葉子節(jié)點(diǎn)114" },
{ id: 12, pId: 1, name: "父節(jié)點(diǎn)12 - 折疊" },
{ id: 121, pId: 12, name: "葉子節(jié)點(diǎn)121" },
{ id: 122, pId: 12, name: "葉子節(jié)點(diǎn)122" },
{ id: 123, pId: 12, name: "葉子節(jié)點(diǎn)123" },
{ id: 124, pId: 12, name: "葉子節(jié)點(diǎn)124" },
{ id: 13, pId: 1, name: "父節(jié)點(diǎn)13 - 沒有子節(jié)點(diǎn)", isParent: true },
{ id: 2, pId: 0, name: "父節(jié)點(diǎn)2 - 折疊" },
{ id: 21, pId: 2, name: "父節(jié)點(diǎn)21 - 展開", open: true },
{ id: 211, pId: 21, name: "葉子節(jié)點(diǎn)211" },
{ id: 212, pId: 21, name: "葉子節(jié)點(diǎn)212" },
{ id: 213, pId: 21, name: "葉子節(jié)點(diǎn)213" },
{ id: 214, pId: 21, name: "葉子節(jié)點(diǎn)214" },
{ id: 22, pId: 2, name: "父節(jié)點(diǎn)22 - 折疊" },
{ id: 221, pId: 22, name: "葉子節(jié)點(diǎn)221" },
{ id: 222, pId: 22, name: "葉子節(jié)點(diǎn)222" },
{ id: 223, pId: 22, name: "葉子節(jié)點(diǎn)223" },
{ id: 224, pId: 22, name: "葉子節(jié)點(diǎn)224" },
{ id: 23, pId: 2, name: "父節(jié)點(diǎn)23 - 折疊" },
{ id: 231, pId: 23, name: "葉子節(jié)點(diǎn)231" },
{ id: 232, pId: 23, name: "葉子節(jié)點(diǎn)232" },
{ id: 233, pId: 23, name: "葉子節(jié)點(diǎn)233" },
{ id: 234, pId: 23, name: "葉子節(jié)點(diǎn)234" },
{ id: 3, pId: 0, name: "父節(jié)點(diǎn)3 - 沒有子節(jié)點(diǎn)", isParent: true }
];
constructor() {
}
ngOnInit() {
$.fn.zTree($("#ztree"),this.setting,this.zNodes);
}
}
看上面的代碼中, $.fn.zTree($("#ztree"),this.setting,this.zNodes);這里我們用到了jQuery的id選擇器,那么我們需要在模板文件demo.component.html中添加一個id為ztree的ul元素
<ul id="ztree"><ul>
至于為什么是ul,可以看zTree的文檔,當(dāng)然你也可以試試別的元素,看能不能實(shí)現(xiàn)。
到這里之后,zTree就算被我們集成進(jìn)來了。效果和對應(yīng)的項(xiàng)目代碼在這里:https://git.oschina.net/zt_zhong/CodeBe
- Angular實(shí)現(xiàn)的進(jìn)度條功能示例
- AngularJS實(shí)現(xiàn)進(jìn)度條功能示例
- Spring Boot+AngularJS+BootStrap實(shí)現(xiàn)進(jìn)度條示例代碼
- 如何在Angular2中使用jQuery及其插件的方法
- AngularJS中如何使用echart插件示例詳解
- Angular4項(xiàng)目中添加i18n國際化插件ngx-translate的步驟詳解
- 如何在AngularJs中調(diào)用第三方插件庫
- Angular5中調(diào)用第三方j(luò)s插件的方法
- 詳解在Angular項(xiàng)目中添加插件ng-bootstrap
- angular4+百分比進(jìn)度顯示插件用法示例
相關(guān)文章
AngularJS使用ng-app自動加載bootstrap框架問題分析
這篇文章主要介紹了AngularJS使用ng-app自動加載bootstrap框架問題,分析了前面文章中所述的ng-app自動加載bootstrap出現(xiàn)的錯誤原因與相應(yīng)的解決方法,需要的朋友可以參考下2017-01-01
AngularJS實(shí)踐之使用ng-repeat中$index的注意點(diǎn)
最近通過客戶的投訴主要到在ng-repeat中使用了$index引發(fā)的一個bug,下面一起來看看這個錯誤是如何引發(fā)的, 以及如何避免這種bug產(chǎn)生,然后說說我們從中得到的經(jīng)驗(yàn)和教訓(xùn)。有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-12-12
詳解基于Bootstrap+angular的一個豆瓣電影app
本篇文章主要介紹了基于Bootstrap+angular的一個豆瓣電影app ,非常具有實(shí)用價值,需要的朋友可以參考下2017-06-06
Angular?Tree?Shaking優(yōu)化機(jī)制原理詳解
這篇文章主要為大家介紹了Angular?Tree?Shaking優(yōu)化機(jī)制原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
angular中實(shí)現(xiàn)控制器之間傳遞參數(shù)的方式
本篇文章主要介紹了angular中實(shí)現(xiàn)控制器之間傳遞參數(shù)的方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-04-04
AngularJS2 與 D3.js集成實(shí)現(xiàn)自定義可視化的方法
本篇文章主要介紹了ANGULAR2 與 D3.js集成實(shí)現(xiàn)自定義可視化的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
AngularJS開發(fā)教程之控制器之間的通信方法分析
這篇文章主要介紹了AngularJS開發(fā)教程之控制器之間的通信方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了AngularJS控制器之間通信的三種常用方式及相關(guān)使用技巧,需要的朋友可以參考下2016-12-12
AngularJS解決ng界面長表達(dá)式(ui-set)的方法分析
這篇文章主要介紹了AngularJS解決ng界面長表達(dá)式(ui-set)的方法,通過具體問題的分析并結(jié)合實(shí)例形式給出了AngularJS長表達(dá)式的相關(guān)使用技巧,需要的朋友可以參考下2016-11-11
angular4模塊中給標(biāo)簽添加背景圖的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猘ngular4模塊中給標(biāo)簽添加背景圖的實(shí)現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09

