【发布时间】:2018-12-18 01:49:54
【问题描述】:
我正在尝试调用 API,但我认为有问题,
import { map } from "rxjs/operators";
import { Injectable } from "@angular/core";
import { HttpClient } from "@angular/common/http";
export class Message {
constructor(public text: any, public sentBy: any) { }
}
@Injectable()
export class ChatService {
constructor(public http: HttpClient) {
}
public sendMessage(message) {
const usertext = new Message(message, 'user');
console.log("message send",usertext);
return this.http
.post<any>(`http://locahost:3000/api/text_query`, usertext)
.pipe(
map(response => {
return response;
})
);
}
}
在 chrome 的 Network tab 中没有得到任何日志。
我正在使用角度 7.0.1 和打字稿:3.1.3
这是我的应用组件文件
import {Component, OnInit} from '@angular/core';
import {ChatService} fom './chat.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
message: string;
constructor(private chatService: ChatService) {}
sendMessage() {
this.chatService.sendMessage(this.message).subscribe(res=>{
})
}
ngOnInit() {
}
}
该服务已正确添加到 app.module.ts 文件中
【问题讨论】:
-
您是否在应用程序的某个位置订阅
sendMessage? -
不,我是从应用程序组件调用的,数据正在这里,无论我想发送什么
-
所以在 AppComponent 中注入你的服务并订阅 appComponent 类中服务的 sendMessage。
-
请包含来自 AppComponent 的代码,显示您如何将 ChatService 注入组件以及如何调用 sendMessage 方法。
-
编辑了问题
标签: angular typescript