我已经在项目中添加了时间,我想知道如何在全局范围内更改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();
}