簡體   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