从组件到服务的角度9传递方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从组件到服务的角度9传递方法相关的知识,希望对你有一定的参考价值。

我有一些websocket代码,可以在其中向Websocket服务器发送消息并得到答复。

此代码工作正常,但我想将其放入服务中,然后从组件中调用它。

这是现在位于组件内部的代码:

import { Component } from '@angular/core';
import {webSocket, WebSocketSubject} from 'rxjs/webSocket';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {

  myWebSocket: WebSocketSubject<any> = webSocket('ws://localhost:8888');

  constructor() {

    this.myWebSocket.subscribe(
      msg => console.log('message received: ' + msg),
      err => console.log(err),
      () => console.log('complete')
   );

  }

  sendMessageToServer(msg) {
    const dte = Date.now();
    this.myWebSocket.next({message: `${msg} - ${dte}` });
  }

}

我现在已经创建了一项服务:

import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
export class WsService {

  constructor() { }
}

我该怎么做...哪些部分从组件到服务...例如,我在服务内部还是在组件中订阅?

答案

您需要将服务引入组件。脚步:将您的服务导入组件。

import { WsService} from 'path/to/WsService';

引入本地字段private wsService: WsService;将您的服务添加到组件构造函数中:

constructor(wsService: WsService)
{
    this.wsService = wsService;
}

[使用您的服务,例如:this.wsService.Method()

以上是关于从组件到服务的角度9传递方法的主要内容,如果未能解决你的问题,请参考以下文章

当我将值从服务传递到我的角度组件时,结果错误

将数组从一个组件传递到另一个组件的角度

导航组件:将 safeArgs 从活动传递到片段

将数据从底部工作表对话框片段传递到片段

如何将从服务接收到的 json 数据传递到 Angular 4 的角材料组件中的数组

以角度将数据从一个组件传递到另一个组件