【发布时间】:2018-05-02 18:04:22
【问题描述】:
我正在学习全栈 Angular4,我想知道如何将数据从一个组件的 get 调用获取到另一个组件,以便我可以使用 {{data.name}} 将数据中继到 html 页面?
我尝试将组件导入另一个组件,然后将一个空对象设置到包含数据的 component.data 中,但我得到一个空对象作为响应。
我做错了什么?
更新:
我的共享服务:
import {Injectable} from "@angular/core";
import {Http, Response, Headers, RequestOptions} from "@angular/http";
import {Observable} from "rxjs/Rx";
import 'rxjs/add/operator/map';
@Injectable()
export class DataService {
apiData: any;
constructor(private http: Http) {}
fetchData() {
return this.http.get('/api/data').subscribe((data) => {
this.apiData = data.json();
console.log(this.apiData);
})
}
}
目标组件:
import { Component } from "@angular/core";
import { AllTablesComponent } from '../tables/alltables.component';
import { DataService } from './../data.service';
@Component({
selector: 'app-target',
templateUrl: './target.component.html',
styleUrls: ['./target.component.css']
})
export class TargetComponent {
data: any;
constructor(private dataService: DataService) {
this.data = this.dataService.fetchData();
console.log("inside target component");
console.log(this.data);
}
}
组件中的空对象与数据服务中的实际数据的屏幕截图。
【问题讨论】:
-
我已经使用了这种创建共享服务的方法,我仍然得到一个空白对象作为响应。
-
如果您尝试过,请创建一个演示来展示您的问题,或者至少通过您的尝试更新您的问题(尽管保留原始问题)
-
更新了我的问题
标签: angular components mean-stack