我是 Angular 新手,我想在加载组件之前填充一些数据,所以我选择使用提供程序工厂
零件
import { Component, AfterViewInit, APP_INITIALIZER } from '@angular/core';
import { SaModelService, initConfiguration } from './sa-model.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [
{
provide: SaModelService,
useFactory: () => (data: SaModelService) => {
return data.load();
}
}
]
})
export class AppComponent implements AfterViewInit {
constructor(private data: SaModelService) {
}
ngAfterViewInit() {
alert(this.data)
}
}
服务
import { Injectable } from '@angular/core';
@Injectable()
export class SaModelService {
constructor() { }
load() {
return {
name: 'foo',
age: 10,
contact: '720 890 1430'
};
}
}
export function initConfiguration(configService: SaModelService): Function {
return () => configService.load();
}
现在当我运行这段代码时,我得到的不是从函数返回的值对象,而是函数,就像这样
我怎样才能得到值而不是函数