如何在AngularJs中调用第三方插件库


Posted in Javascript onMay 21, 2017

在AngularJs中我们会不可避免的使用第三方库,例如jquery插件库。我们不能散乱的在AngularJS中引入这些库,例如在controller中。那么应该怎么在Angular中使用第三方库呢?

如何使用?

很简单,给插件写一个directive。

在这里,我会使用一个简单的jquery插件Toolbar.js 的DEMO。

这是我们如何在jquery中创建一个tooltip的:

<!-- Click this to see a toolbar --> 
<div id="format-toolbar" class="settings-button"> 
  <img src="http://paulkinzett.github.com/toolbar/img/icon-cog-small.png"> 
</div> 
  
<!-- Our tooltip style toolbar --> 
<div id="format-toolbar-options"> 
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><i class="icon-align-left"></i></a> 
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><i class="icon-align-center"></i></a> 
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><i class="icon-align-right"></i></a> 
</div>
<!-- Typical jQuery plugin invocation --> 
$('#format-toolbar').toolbar({ 
  content: '#format-toolbar-options',  
  position: 'left' 
});

在Angular中使用

在这里我们自定义一个元素属性'toolbar-tip'--这使我们要写的Angular directive。我们改写下html:

<div id="format-toolbar1" class="settings-button" toolbar-tip="{content: '#format-toolbar-options', position: 'top'}"> 
  <img src="http://paulkinzett.github.com/toolbar/img/icon-cog-small.png"> 
</div>

这里需要注意的一点是:我们把toolbar的options全部写到了html中,这样,我们就可以在任意地方使用相同的directive。
最终:

<script> 
var App = angular.module('Toolbar', []); 
  
App.directive('toolbarTip', function() { 
  return { 
    // Restrict it to be an attribute in this case 
    restrict: 'A', 
    // responsible for registering DOM listeners as well as updating the DOM 
    link: function(scope, element, attrs) { 
      $(element).toolbar(scope.$eval(attrs.toolbarTip)); 
    } 
  }; 
}); 
</script>

这样就很简单的在Angular中引用了第三方插件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
解决json日期格式问题的3种方法
Feb 02 Javascript
jquery高级编程的最佳实践详解
Mar 23 Javascript
JavaScript制作windows经典扫雷小游戏
Mar 31 Javascript
JavaScript数组对象赋值用法实例
Aug 04 Javascript
Backbone.js框架中Model与Collection的使用实例
May 07 Javascript
js中获取 table节点各tr及td的内容简单实例
Oct 14 Javascript
backbone简介_动力节点Java学院整理
Jul 14 Javascript
jQuery简单实现对数组去重及排序操作实例
Oct 31 jQuery
vue中引用swiper轮播插件的教程详解
Aug 16 Javascript
vue项目首屏加载时间优化实战
Apr 23 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
Jul 30 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
Apr 28 Javascript
详解Angular-Cli中引用第三方库
May 21 #Javascript
Angular2安装angular-cli
May 21 #Javascript
Angular2使用Augury来调试Angular2程序
May 21 #Javascript
Angular2使用Angular-CLI快速搭建工程(二)
May 21 #Javascript
Angular2使用Angular CLI快速搭建工程(一)
May 21 #Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
May 20 #jQuery
node.js 中间件express-session使用详解
May 20 #Javascript
You might like
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
2010/06/04 PHP
PHP持久连接mysql_pconnect()函数使用介绍
2012/02/05 PHP
PHP分页详细讲解(有实例)
2013/10/30 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
实用又漂亮的BootstrapValidator表单验证插件
2016/05/30 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
javascript基于定时器实现进度条功能实例
2017/10/13 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
Vue按时间段查询数据组件使用详解
2020/08/21 Javascript
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
python模块restful使用方法实例
2013/12/10 Python
python算法学习之基数排序实例
2013/12/18 Python
Python学习之asyncore模块用法实例教程
2014/09/29 Python
Python魔术方法详解
2015/02/14 Python
python的pdb调试命令的命令整理及实例
2017/07/12 Python
python运行其他程序的实现方法
2017/07/14 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
python截取两个单词之间的内容方法
2018/12/25 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
解决pip install psycopg2出错问题
2020/07/09 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
运动会跳远广播稿
2014/02/04 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
MySQL复制问题的三个参数分析
2021/04/07 MySQL
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电