NullInjectorError: Нет провайдера для HubService - PullRequest
0 голосов
/ 30 мая 2018

Я начал изучать сигнализатор и angular и хочу создать приложение, которое может общаться с браузером, используя сигнализатор.Я использую ngx-signalR-hubservice в angular для связи с приложением сигнализатора.Я создал простой сервис для проверки кода

import { Injectable } from '@angular/core';
import {
  HubService,
  Hub,
  HubSubscription,
  HubWrapper
} from 'ngx-signalR-hubservice';

@Injectable({providedIn: 'root'})
@Hub({hubName: 'DALHub'})
export class UserConnectionServiceService {
  private hubWrapper: HubWrapper;
  constructor(private hub: HubService) {
    this.hubWrapper = this.hub.register(this);
    this.hub.connect({url: 'http://localhost:10476/signalr'});
}
  async SaveKey() {
    await this.hubWrapper.invoke('SaveKey', 'yedidya', 'kfiry');
    console.log('awesome');
  }
  @HubSubscription()
  OK() {
    console.log('GOT IT');
  }
}

, это компонент моего приложения

import { NgModule } from '@angular/core';
import { HubService } from 'ngx-signalr-hubservice';

@NgModule({
  declarations: [
    AppComponent,
    SignUpComponent,
    LogInComponent
  ],
  imports: [
  ],
  providers: [HubService],
  bootstrap: [AppComponent]
})
export class AppModule {}

, а вот код, в котором я использую созданный мной сервис

import { Component, OnInit } from '@angular/core';
import {UserConnectionServiceService} from '../../Services/UserConnectionService/user-connection-service.service';

@Component({
  selector: 'app-sign-up',
  templateUrl: './sign-up.component.html',
  styleUrls: ['./sign-up.component.css']
})
export class SignUpComponent implements OnInit {
  public save(): void {
    this.hub.SaveKey();
  }
  constructor(private hub: UserConnectionServiceService) { }

  ngOnInit() {
  }

}

но когда я пытаюсь запустить его (я использую ng serve), в браузере появляется следующая ошибка

Ошибка: Ошибка StaticInjectorError (AppModule) [SignUpComponent -> HubService]: StaticInjectorError (Платформа: core) [SignUpComponent -> HubService]: NullInjectorError: Нет поставщика для HubService!на NullInjector.push ../ node_modules/@angular/core/fesm5/core.js.NullInjector.get (core.js: 979)

1 Ответ

0 голосов
/ 30 мая 2018

В AppModule

 import { HubService } from 'ngx-signalr-hubservice'; 

В UserConnectionServiceService:

import {
  HubService,
  Hub,
  HubSubscription,
  HubWrapper
} from 'ngx-signalR-hubservice';

Это должно быть ngx-signalr-hubservice?

Я считаю, что это опечатка изавтор.Вот ссылка на npm: https://www.npmjs.com/package/ngx-signalr-hubservice

...