繁体   English   中英

如何使用angular 2扩展外部javascript库?

[英]How to extend external javascript library with angular 2?

我已经将moment添加到我的项目中,我想知道如何才能全局更改moment.fn.toJSON的行为。

目前,我正在使用构造函数来执行此操作,并且它可以正常工作。 但是我不想将此代码粘贴到所有控制器中。

所以这里是摘录:

import * as moment from 'moment';

constructor(fb: FormBuilder) {
    moment.fn.toJSON = function () { return this.format(); }
}

有人有主意吗?

只需在3rd party库中扩展该类并根据需要添加自定义方法即可。

例如:

// 1)扩展类:

 export class MyFormBuilder extends FormBuilder{

     public myCoolMethod(): string{
        return "Awesome stuff!"
     }
 }

// 2)将您的类导入“应用程序模块”(用于系统范围的访问)

import { MyFormBuilder }     from './Services/MyFormBuilder';
@NgModule({
    declarations: [AppComponent, AppHeader, AppFooter],
    imports:      [BrowserModule, ReactiveFormsModule],
    providers:    [MyFormBuilder],
    bootstrap:    [AppComponent],
})

`

// 3)在代码中导入,注入和使用扩展类和新方法:

import { MyFormBuilder }     from './Services/MyFormBuilder';
export class AppComponent{
    constructor(private fb: MyFormBuilder){}
    pageTitle : string = this.fb.myCoolMethod();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM