【发布时间】:2017-05-16 09:05:36
【问题描述】:
我有一个简单的订阅 observable 的函数:
public MyGet () {
let results={};
this.http.get("myfile.json").map(res => res.json()).subscribe(
output => {
results=output.clients; // clients is the root of json file
},
/* etc */
json文件“myfile.json”是:
{
"clients" : [
{ "name":"X",
"age":"34" },
{ "name": "Y",
"age": "41" },
/* etc */
我希望“客户”作为函数 MyGet 中的参数:
public MyGet (json_root: any){
let results={};
this.http.get("myfile.json").map(res => res.json()).subscribe(
output => {
results=output.HERE; // HERE = json_root
},
/* etc */
所以我可以打电话:
MyGet("clients")
我不明白如何在 HERE 中编写 json_root
【问题讨论】:
-
我不太明白如何使用结果。但是对于
output.HERE,您可以使用output[json_root]。 -
我的例子是一个简化,但使用“客户”确实有效。这个想法是将json文件的根作为参数。我试过输出[json_root],不行。
-
好的,很奇怪。我的意思是你在哪里调用你的结果或者你在哪里显示它?
-
这不是重点,解释起来很复杂,我无法改变这个结构。关键是静态“output.clients”确实有效,动态参数“output.json_root”无效。我不明白我必须使用哪种语法,“输出。?”
-
好吧,这很奇怪, output[json_root] 应该可以工作,看这里:jsfiddle.net/ftb33mv0/1
标签: json rxjs observable subscribe