我正在使用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);
}
}
但这只会将数据发送到组件。
我该怎么做?
答案 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() {
}
}