【发布时间】:2018-03-20 08:50:58
【问题描述】:
我已按照 Angular 网站 (https://angular.io/guide/http) 上的教程进行操作,但我无法实现我想要的,因为我有一个我不明白的错误。 我已将我的文本文件放在资产文档中,并创建了一个 config.json 文件,我在其中输入了教程中的代码。 我的 service.ts 文件和 component.ts 文件也出现错误。 请帮助我理解我的错误和教程。
Component.ts
import { Component, OnInit } from '@angular/core';
import {Observable} from 'rxjs/Observable';
import {HttpClient, HttpErrorResponse, HttpResponse} from '@angular/common/http';
import {GeneralService} from '../general.service';
@Component({
selector: 'app-general',
templateUrl: './general.component.html',
styleUrls: ['./general.component.css']
})
export interface General {
generalUrl: string;
textfile: string;
}
export class GeneralComponent implements OnInit {
title = 'Introduction';
generalUrl = 'assets/project_description.txt';
general: General;
generalService: GeneralService;
constructor(private http: HttpClient) { }
ngOnInit() {
}
getGeneral() {
return this.http.get(this.generalUrl);
}
showGeneral() {
this.generalService.getGeneral()
.subscribe(data => this.general = {
generalUrl: data['generalUrl'],
textfile: data['textfile']
});
}
showGeneralResponse() {
this.generalService.getGeneralResponse()
.subscribe(resp => {
const keys = resp.headers.keys();
this.headers = keys.map(key =>
`${key}: ${resp.headers.get(key)}`);
this.config = {
});
}
}
在我的 showGeneralResponse() 函数头和配置中是未解析的变量
Service.ts
import { Injectable } from '@angular/core';
import {General} from './general/general.component';
import {HttpResponse} from '@angular/common/http';
import {Observable} from 'rxjs/Observable';
@Injectable()
export class GeneralService {
constructor() { }
getGeneral() {
return this.http.get<General>(this.generalUrl);
}
getGeneralResponse(): Observable<HttpResponse<General>> {
return this.http.get<General>(
this.generalUrl, { observe: 'response'}
);
}
}
在 getGeneral() 和 getGeneralresponse() 函数中,我有 http 和 generalUrl 是未解析的变量
但是在我的 config.json 文件中我没有错误
config.json
"generalUrl": "api/general",
"textfile": "assets/project_description.txt"
我也想知道在我的 html 文件中放入哪个函数,以便我的应用程序显示我的文件文本
【问题讨论】:
-
请告诉我你的错误
-
你想用 HttpClient 读取 config.json 数据吗?
-
在我的 showGeneralResponse() 函数中 ->
showGeneralResponse() { this.generalService.getGeneralResponse() .subscribe(resp => { const keys = resp.headers.keys(); this.**headers** = keys.map(key => ${key}: ${resp.headers.get(key)}); **this.general** = { }); }错误在 headers 中,它说它是一个未解决的变量而且我不知道该放什么this.general 的括号 -
@LucieSchaffner 我们不需要您重新格式化错误,我们需要的只是错误跟踪。你能把它贴在你的问题中吗?并且是全文,请不要作为图片
-
请像这样更改 getGeneral 方法:
getGeneral() { return this.http.get(this.generalUrl).map((res: Response) => res.json()); }
标签: angular typescript httpclient