【发布时间】:2017-09-30 08:33:59
【问题描述】:
我想将数据从服务返回到组件,但是当我使用服务变量返回数据时,没有出现错误,只是未定义.... 请指导我解决问题所在。当使用我在 Angular 中应用的离子相同逻辑时,我得到了数据,但在 Angular 4 应用程序中没有。
signal.service.ts
当我做console.log(this.signal)
给我一个正确的对象数组。
import { Injectable } from '@angular/core';
import {HttpModule, Http} from '@angular/http';
@Injectable()
export class SignalsService {
signal : Array<any>;
constructor(public _http:Http) {
this._http.get('http://localhost/4x/data.php')
.subscribe(res =>{
this.signal = res.json().data;
return this.signal
});
}
}
当我执行控制台时,我的组件在这里显示从服务返回数据的信号 未定义
home.component.ts
import { Component, OnInit } from '@angular/core';
import {HttpModule, Http} from '@angular/http';
import {SignalsService} from '../signals.service';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css'],
})
export class HomeComponent implements OnInit {
sig :Array<any>;
constructor(public _http:Http,public _signa:SignalsService) {
}
ngOnInit() {
console.log(this._signa.signal);
}
此外
当我直接在 ngOnInit 部分的 home.component.ts 中插入 HTTP 的服务请求时,它可以工作并返回数据,但为什么我的服务不工作。
【问题讨论】:
-
你异步获取数据,这意味着它需要一段时间。您的组件在收到数据之前读取数据。使用 observable 通知组件数据到达。
-
@GünterZöchbauer 你能告诉我原因还有任何教程来解决这个问题并理解未来的问题。
标签: angular