如果我使用以下配置创建一个库,请将其安装在应用程序端,然后继承并使用它,
如果ng build --prod=true
,将不会调用ngOnInit
。
如果ng build
,则调用ngOnInit
。
Angular
:6.1.1 Angular CLI
:6.2.9 如果您退出库并将库源放入应用程序中,它将起作用。 但是,我想使其成为一个库,因为我想共同使用它。
export abstract class LibrarySampleBase implements OnInit {
public ngOnInit() {
this.InitPage();
}
}
export abstract class LibrarySample extends LibrarySampleBase {
// no exist ngOnInit()
}
@Component({
selector: 'app-sample',
templateUrl: './sample.component.html',
styleUrls: ['./sample.component.css']
})
export class Sample extends LibrarySample {
InitPage() {
// processing
}
}
即使ngOnInit
时也如何呼叫ng build --prod=true
?
另外,如果您有任何错误信息,请告诉我。
答案 0 :(得分:0)
这对我有用:
import { OnInit } from '@angular/core';
export abstract class LibrarySampleBase implements OnInit {
public ngOnInit() {
this.initPage();
}
initPage() {
console.log('Hi');
}
}
export abstract class LibrarySample extends LibrarySampleBase {}
import { Component } from '@angular/core';
import { LibrarySample } from './library-sample-base.ts';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent extends LibrarySample {
initPage() {
console.log('Bye!');
}
}
Bye 在控制台中显示为日志。如果我评论了AppComponent中的initPage()
,则记录为 Hi 。所以我认为这可以预期。
Angular
:7.2.12 Angular CLI
:7.3.8 我正在使用ng serve --prod=true
进行尝试。