Angular 4 - (onclick)将参数传递给服务

时间:2017-10-20 19:27:15

标签: javascript angular

我正在使用Angular 4,我想知道如何将参数值传递给服务。

例如:

<button (onClick)="doSomething('myParameter')">Send this to Service</button>

然后服务就会得到它。

我目前有这个:

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

@Injectable()
export class MessageService {

  constructor() { }

  message() {
    return 'This data goes to the component';
  }

}

然后得到就像这样:

export class AppComponent implements OnInit {

  constructor(private messageService: MessageService) {}

  ngOnInit() {
     console.log(this.messageService.message);
  }

}

但这只会将数据发送到组件。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

您的模板应与您的组件类通信,您的组件类应与您的服务进行通信。

我发现您的模板中有一个doSomething方法未在您的组件中定义?

你需要这样的东西:

组件1

export class AppComponent implements OnInit {

  constructor(private messageService: MessageService) {}

  ngOnInit() {

  }

  doSomething(message: string): void {
      this.messageService.message = message;
  }

}

<强>服务

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

@Injectable()
export class MessageService {
  message: string;

  constructor() { }

}

组件2

export class AppComponent implements OnInit {
  get message(): string {
     return this.messageService.message;
  }

  constructor(private messageService: MessageService) {}

  ngOnInit() {

  }
}