Jwq*_*wqq 3 typescript angular-services angular-module angular
我正在尝试将旧的 angular 1.5 服务注入到我的 angular 1.5/4 混合应用程序中的 angular 4 模块中。
的MyService,因为如果我让一个市民,我也没办法与初次它使用一个静态方法
new MyService(),因为MyService预计设置了一个param,我不知道如何提供。
我的班级 (my-service.class.ts)
import {Inject, Injectable} from '@angular/core';
@Injectable()
class MyService {
constructor(
@Inject('myOldService') private myOldService: any) {}
static getMyUrl() {
console.log(this.myOldService);
// complains
// Property 'myOldService' does not exist on type 'typeof MyService
return this.myOldService.getItemUrl();
}
}
export default MyService;
Run Code Online (Sandbox Code Playgroud)
我的模块
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
...other import..
import MyService from './my-service.class';
console.log(MyService.getMyUrl())
//has error because getMyUrl has error.
@NgModule({
'imports': [
CommonModule
],
'declarations': [
MyComponent
],
'providers': [
MyService
]
})
export class MyModule {}
Run Code Online (Sandbox Code Playgroud)
基本上我不知道如何将我的旧服务注入静态方法。有帮助吗?非常感谢!
如果您只需要在加载模块时运行代码。您将该代码放在模块的构造函数中。
您必须将您的服务注入到 MyModule
export class MyModule {
constructor(MyService service) {
console.log(service.getMyUrl());
}
}
Run Code Online (Sandbox Code Playgroud)
您还必须static从服务中删除。不要对可注入服务使用静态方法。
| 归档时间: |
|
| 查看次数: |
6396 次 |
| 最近记录: |