【发布时间】:2018-03-06 17:50:49
【问题描述】:
我正在重建一个我为新的 Angular 5 框架构建的 AngularJS 应用程序。我承认我对 Typescript 和边走边学不太熟悉。
我正在尝试在 AngularJS 中重新创建一个等效的服务。我有许多需要通过多个组件访问的常用功能。因此,通过 Angular CLI,我使用了以下命令:ng generate service Common。然后我添加了一个测试函数并尝试将服务注入我的组件并尝试调用它。我收到一条错误消息,提示找不到名称 ServiceTest。
Common.service.ts
import { Injectable } from '@angular/core';
@Injectable()
export class CommonService {
public ServiceTest(data) {
console.log(data)
}
constructor() { }
}
然后我创建一个如下所示的组件:
Share-Buttons.Components.ts
import { Component, OnInit } from '@angular/core';
import { CommonService } from '../../common.service';
@Component({
selector: 'app-shared-buttons',
templateUrl: './shared-buttons.component.html',
styleUrls: ['./shared-buttons.component.css']
})
export class SharedButtonsComponent implements OnInit {
public params: any;
agInit(params: any): void {
this.params = params;
}
public invokeServiceTest() {
ServiceTest(this.params.data);
}
constructor() { }
ngOnInit() {
}
在我的 aoo.modules 中,服务位于我的提供程序中,如下所示:
providers: [CommonService],
我错过了什么吗?
【问题讨论】:
-
问题是你没有通过构造函数将服务注入到组件中。
-
constructor(private commonService: CommonService) { this.commonService.ServiceTest("something")}
标签: javascript angular typescript angular5