Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Angular中引入第三方JS库

Angular中引入第三方JS库

作者头像
屈定
发布于 2018-09-27 03:50:25
发布于 2018-09-27 03:50:25
6.2K00
代码可运行
举报
文章被收录于专栏:屈定‘s Blog屈定‘s Blog
运行总次数:0
代码可运行

最近写http://www.itoolshub.com/的时候用到了日期时间选择器,Angular本身material2只有日期选择器,也不知道为什么官方不提供日期时间选择器,也可能是Angular2以及如今的4有些年轻,很多库都不是很成熟,于是乎搜索到的解决方案就是借助第三方的库来使用一些优秀的组件.本文以https://github.com/sentsin/laydate组件为例.

引入js与css

https://github.com/sentsin/laydate是采用原生js实现的组件,因此不需要考虑相关依赖,直接入手. 1.使用npm下载该组件npm install layui-laydate -save 2.在.angular-cli.json文件中配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"styles": [
     "styles.scss",
     "../node_modules/layui-laydate/dist/theme/default/laydate.css"
   ],
   "scripts": [
     "../node_modules/layui-laydate/dist/laydate.js"
   ],

Angular在编译的时候会把上述的js引用都打包到scripts.bundle.js文件中

ts编译识别laydate

第一步完成后如果在TS中使用laydate变量,编译器是会直接报错的,因为其找不到这个变量,因此这一步要做的就是让ts识别该变量.做法很简单,在typings.d.ts中加入声明

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* SystemJS module definition */
declare var module: NodeModule;
interface NodeModule {
  id: string;
}
// laydate声明
declare var laydate: any;

使用laydate功能

laydate是需要更改Dom节点的,因此该步骤必须放到Angular对视图渲染之后,也就是生命周期中的AfterViewInit函数中执行.另外该渲染会使得双向绑定失效,需要处理结果则可以在laydate的回调函数中处理. 另外使用的时候就可以按照ts的语法来使用了,最终都会解析成原生js.比如下方的箭头函数.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ngAfterViewInit(): void {
  let done = (value, date, endDate) =>{
    let selectTime = new Date(value);
    this.timeStampOut = selectTime.getTime() / 1000;
    this.timeStampWeek = TimestampComponent.WEEKS[selectTime.getDay()] == null ? "Invalid Week": TimestampComponent.WEEKS[selectTime.getDay()]
  };
  laydate.render({
    elem: '#layerdate',
    type: 'datetime',
    change: done,
    done: done
  });
}

备注

很多库都是直接对DOM进行操作,这对于Angular这种虚拟Dom操作会导致绑定失效等各种异常问题,一般情况下不建议混编,尤其是大项目,到后期会出现各种折磨人的小问题.

更多Angular实战代码可以参考我的开源项目:

github: https://github.com/nl101531/IToolsHub

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Angular6自定义表单控件方式集成Editormd
曾经找到过“Editor.md”,看之心喜,一直想在Angular中集成下这款markdownpad编辑器玩,在网上也只找到一篇通过指令集成的,虽然可以实现,但还是希望能做成组件形式的,之后看到一篇自定义组件的文章,了解到ControlValueAccessor才真正完成这个心愿,现在记录分享与诸公。
WindCoder
2018/09/19
5.2K0
Angular6自定义表单控件方式集成Editormd
关于在angular2中引入第三方插件或者框架(jquery)
由于本人也是初入angular2不久,很多问题也许解决了,确不知其原由,也有一些问题,解决了后面又出来同样的错误,关于这些,请谅解. 关于这个问题,我自己也是想了很久,总算是能用上了, 想在angular2中引用jquery的话,高大上的一个方法是,在package.json中的dependencies中写入,执行cnpm i;安装; "dependencies": { "@angular/common": "^4.0.0", "@angular/compiler": "^4.0.0",
杭州前端工程师
2018/06/15
2.3K0
Angular2入门体验
好的工具往往使得开发应用更快更简单,而不是任何模块都手动开发。angualr cli就是一个支持 创建工程,添加文件,对各种任务如测试、打包、部署等迭代。 本文的目的就是基于TypeScript开发构建一个angualr应用,使用angualr cli可以选择工程的风格。 在本章的 末尾,你可以理解CLI的开发以及开发完整应用的样例。 也可以通过这个链接直接下载源码。 第一步,配置环境变量 在开始开发前,需要安装nodejs。 点击这个网址,Nodejs安装文件下载 在命令行中,执行: sudo npm i
用户1154259
2018/04/17
1.6K0
使用Angular CLI进行Build (构建) 和 Serve
Build. Build主要会做以下动作: 编译项目文件并输出到某个目录 Build targets决定了输出的结果 bundling 打包 生产环境的build还会进行uglify和tree-shaking(把没用的代码去掉) ng build. 可以先看帮助: ng build --help 针对开发环境, 就是用命令 ng build. 默认情况下, 它的输出目录在.angular-cli.json文件里ourDir属性配置的, 默认是/dist目录. build之后会看见dist里面有这些文件: i
solenovex
2018/03/29
2.3K0
使用Angular CLI进行Build (构建) 和 Serve
使用Angular CLI生成 Angular 5项目
如果您正在使用angular, 但是没有好好利用angular cli的话, 那么可以看看本文. Angular CLI 官网: https://github.com/angular/angular-cli 安装angular cli: npm install -g @angular/cli 不过首先要确保您安装了比较新版本的nodejs. 今天主要通过以下几个方面介绍Angular CLI: 生成项目 参数介绍 配置和自定义CLI 检查和修复代码 生成新项目: ng new my-app 这个命令会生成一
solenovex
2018/03/29
1.9K0
使用Angular CLI生成 Angular 5项目
在 Angular 2 Component 中使用第三方 JS 库
本文所有内容以 Angular 2 Quick Start 项目为基础,使用 TypeScript 语言。
Alan Zhang
2018/10/19
1.9K0
在 Angular 2 Component 中使用第三方 JS 库
Angular CLI 简介
如果您正在使用angular, 但是没有好好利用angular cli的话, 那么可以看看本文.
solenovex
2018/03/22
6.1K5
Angular CLI 简介
关于做angular4引入echarts图表
NgxEchartsService 是全局 echarts 对象的包装器。您可以直接获取本机echarts对象或使用包装器方法。例如:
用户1437675
2018/08/20
3.2K0
一个Angular 5教程:一步一步指导实现你的第一个Angular 5应用程序
现在我们可以app.component.html用这个替换:Angular是由Google开发的AngularJS框架的新版本。它带有一个完整的重写,以及各种改进,包括优化构建和更快的编译时间。在这个Angular 5教程中,我们将从头开始构建一个笔记应用程序。如果您一直在等待学习Angular 5,本教程适合您。
WindCoder
2018/09/19
42.8K0
一个Angular 5教程:一步一步指导实现你的第一个Angular 5应用程序
angular-cli.json配置参数解释,以及依稀常用命令的通用关键参数解释
一. angular-cli.json常见配置 { "project": { "name": "ng-admin", //项目名称 "ejected": false // 标记该应用是否已经执行过eject命令把webpack配置释放出来 }, "apps": [ { "root": "src", // 源码根目录 "outDir": "dist", // 编译后的输出目录,默认是dist/ "assets": [ // 记录资源文件夹
喝茶去
2019/04/16
1.6K0
Angular开发技巧
npm install jquery -S npm install @types/jquery -D angular.json
世间万物皆对象
2024/03/20
750
LayUI前框框架普及版
获得 layui 后,将其完整地部署到你的项目目录(或静态资源服务器),你只需要引入下述两个文件:
用户9184480
2024/12/13
2300
Angular 应用是怎么工作的?
Angular 应用的启动基于 angular.json 文件。这个不是应用的入口文件,而是应用的启动文件。
Jimmy_is_jimmy
2022/04/15
1.5K0
Angular 应用是怎么工作的?
Angular Library 快速入门
在介绍如何创建 Angular Library 之前,让我们来看一下 Angular 新的配置文件 —— angular.json。早期版本的 angular-cli.json 文件已经被替换为 angular.json 文件,文件的内容也发生了改变。这里我们关心的 projects 属性,它为每个独立的项目提供了一个入口:
阿宝哥
2019/11/05
2.4K0
【技巧】ionic3添加第三方js
网上应该有资料吧?对于封装成angular2+的模块,直接import就行了,反之的第三方js,其实也很简单,一般不用考虑js的模块规范(如CommonJS,AMD,CMD),起码有如下两种方式(以jquery为例——题外话,angular虽然也能操作dom,但不推荐,推崇使用数据绑定,所以一般没必要引入jquery):
IT晴天
2018/08/20
1.2K0
为生产环境编译 Angular 2 应用
Angular 2 已经发布了 2.1.2 版本, 相信很多人已经在使用(试用)了, 相比 AngularJS 1.x , Angular 2 在性能上有了长足的进步, 同时 Angular 2 也变得非常的庞大, 动辄几兆的脚本, 如何部署到生产环境? 接下来就介绍如何为生产环境编译 Angular 2 应用, 在本文中, 我们将 Angular 2 官方文档中的 Hello Angular 应用编译到 50K 以下, 以用于生产环境。
beginor
2020/08/10
1.2K0
为生产环境编译 Angular 2 应用
Angular Schematics 三部曲之 Add
因工作繁忙,差不多有三个月没有写过技术文章了,自八月份第一次编写 schematics 以来,我一直打算分享关于 schematics 的编写技巧,无奈还是拖到了年底。
叙帝利
2020/01/15
1.4K0
Angular Schematics 三部曲之 Add
angular 2+组件 - 框架 - 集成 - 构建文档 - ckeditor5中文文档
CKEditor 5由现成的编辑器构建和构建所基于的CKEditor 5 Framework组成。
ianzhi
2019/07/31
3.5K0
Angular开发实践(六):服务端渲染
Angular Universal Angular在服务端渲染方面提供一套前后端同构解决方案,它就是 Angular Universal(统一平台),一项在服务端运行 Angular 应用的技术。 标准的 Angular 应用会执行在浏览器中,它会在 DOM 中渲染页面,以响应用户的操作。 而 Angular Universal 会在服务端通过一个被称为服务端渲染(server-side rendering - SSR)的过程生成静态的应用页面。 它可以生成这些页面,并在浏览器请求时直接用它们给出响应。 它
laixiangran
2018/04/11
4.8K0
Angular开发实践(六):服务端渲染
Angular 2 版本的 ng-bootstrap 初体验
最近 angular-ui 团队终于正式发布了基于 Angular 2 的 Bootstrap 界面库 ng-bootstrap , 工作中一直用 AngularJS 1.x 的 UI Bootstrap , 因此对这个 ng-bootstrap 也是很感兴趣, 第一时间进行试用。
beginor
2020/08/10
1.5K0
Angular 2 版本的 ng-bootstrap 初体验
相关推荐
Angular6自定义表单控件方式集成Editormd
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文