Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 服务中注入的服务未定义_Angular_Typescript_Angular2 Services - Fatal编程技术网

Angular 服务中注入的服务未定义

Angular 服务中注入的服务未定义,angular,typescript,angular2-services,Angular,Typescript,Angular2 Services,我有两种服务,第一种服务以这种方式注入第二种服务: 规则.服务.ts @Injectable() export class RuleService { constructor( private _resourceService: ResourceService ){} someMethod(url: string) { this._resourceService.getData(url).then((res) => {

我有两种服务,第一种服务以这种方式注入第二种服务:

规则.服务.ts

@Injectable()
export class RuleService {

    constructor(
        private _resourceService: ResourceService
    ){}

    someMethod(url: string) {
       this._resourceService.getData(url).then((res) => {
          console.log(res);
       }
    }

}
@Injectable()
export class ResourceService {

   constructor(
       http: Http
   ) { }

   public getData(url?: string): Promise<T> {
       //some code
   }
}
resource.service.ts

@Injectable()
export class RuleService {

    constructor(
        private _resourceService: ResourceService
    ){}

    someMethod(url: string) {
       this._resourceService.getData(url).then((res) => {
          console.log(res);
       }
    }

}
@Injectable()
export class ResourceService {

   constructor(
       http: Http
   ) { }

   public getData(url?: string): Promise<T> {
       //some code
   }
}
但当我尝试从RuleService调用someMethod时,我得到以下控制台错误:

异常:未捕获(承诺中):TypeError:无法读取属性 未定义类型的“getData”错误:无法读取的属性“getData” 未定义 评估时(评估时(),:210:39) 在新的分区(评估时间(),:695:29) 在HTMLSelectElement.eval(eval at(),:208:20) 在HTMLSelectElement.dispatch()处 在HTMLSelectElement.r.handle()处 在ZoneDelegate.invokeTask(eval at(),:363:31) 在Object.onInvokeTask(eval at(),:3971:41) 在ZoneDelegate.invokeTask(eval at(),:362:36) at Zone.runTask(eval at(),:166:47) 在HTMLSelectElement.ZoneTask.invoke(eval at(),:416:38) ErrorHandler.handleError@core.umd.js?e2a5:3064下一步@ core.umd.js?e2a5:8041 schedulerFn@core.umd.js?e2a5:3689 SafeSubscriber.\uu tryOrUnsub@VM86162:223 SafeSubscriber.next@ VM86162:172订户。_next@VM86162:125订户。next@ VM86162:89 Subject.next@VM86159:55 EventEmitter.emit@ core.umd.js?e2a5:3675 NgZone.triggerror@core.umd.js?e2a5:4040 onHandleError@core.umd.js?e2a5:4001 ZoneDelegate.handleError@ zone.js?fad3:334 zone.runguard@zone.js?fad3:142 _loop_1@zone.js?fad3:540 drainMicroTaskQueue@zone.js?fad3:549 ZoneTask.invoke@zone.js?fad3:420 ListPicker.\u handleMouseUp@ 关于:空白:540


谁能告诉我,我做错了什么?如何在服务中更正实施服务?

您需要使用箭头功能来保留此

$("select[name='" + a_parameters[0] + "']")
   .change((e: any) => { // <== arrow function instead of FE(function expression)
        return new Promise((resolve) => {
            let array: any[] = [];
            this._resourceService.getData(a_parameters[1]).then(() => {
$(“选择[name=”+a_参数[0]+“]”)
.change((e:any)=>{//{
let数组:任意[]=[];
这个._resourceService.getData(a_参数[1])。然后(()=>{

您需要使用箭头功能来保留此

$("select[name='" + a_parameters[0] + "']")
   .change((e: any) => { // <== arrow function instead of FE(function expression)
        return new Promise((resolve) => {
            let array: any[] = [];
            this._resourceService.getData(a_parameters[1]).then(() => {
$(“选择[name=”+a_参数[0]+“]”)
.change((e:any)=>{//{
let数组:任意[]=[];
这个._resourceService.getData(a_参数[1])。然后(()=>{

请在调用
someMethod
编辑:调用方法谢谢:)然后我发现您丢失了contextThank!这是工作。我相信我犯了这个错误。;)请在调用
someMethod
编辑:调用方法谢谢:)的地方添加代码然后我看到你失去了很多。谢谢!这是工作。我可以相信我犯了那个错误