【发布时间】:2023-03-26 12:27:01
【问题描述】:
我的服务有问题。我有一个服务,它从 HTTP 模块获取 JSON 并用它填充一个类'olders'。但是当我打电话给我的服务时,它什么也没做,而且我的班级长辈仍然没有定义...... 如果我在 yearbook.component.html 中创建 *ngFor 指令,我什么也得不到…… 我认为我的问题来自我的服务,但我不知道错误在哪里...... 即使我将 console.log 放在订阅中
我的 yearbook.component :
import {Component} from '@angular/core'
import {Olders} from './olders'
import {OldersService} from './olders.service'
@Component({
moduleId: module.id,
selector: 'yearbook',
templateUrl: 'yearbook.component.html',
})
export class YearbookComponent {
olders : Olders[];
constructor(
private _oldersService : OldersService
){}
ngOnInit() {
this._oldersService.getOldersfromAPI()
.subscribe( res => {this.olders = res,
console.log(this.olders)},
err => console.error(err.status)
);
}
}
和 olds.service :
import {Injectable} from '@angular/core'
import {Http} from '@angular/http'
import {Olders} from './olders'
import 'rxjs/add/operator/map'
import 'rxjs/add/operator/do'
@Injectable ()
export class OldersService {
constructor(private _http:Http) {
}
getOldersfromAPI(){
return this._http.get('../CDN/olders.json')
.do(x => console.log(x))
.map(olders => {olders = olders.json()});
}
}
提前感谢您的所有回答
【问题讨论】:
-
这个网址看起来很奇怪'../CDN/olders.json'
-
最好不要在请求中使用相对路径,使用“完整”路径,从顶层开始(通常是
src)。你检查过控制台,有什么错误吗?我猜你会得到那个 url 的 404 错误:) -
这与 angular、http 或 observables 无关。这是基本的 JS 异步行为。将
console.log移动到订阅处理程序中,此时数据可用。 -
这个 url 只是我的 json 的路径,我的控制台没有任何错误,即使是 404 one @AJT_82
标签: javascript angular http observable angular2-services