如何将对象表示法路径保存到变量中以在模板中使用?

时间:2018-05-01 16:20:10

标签: typescript angular5 mustache

我需要从长路径中获取数据。所以我试图将路径存储在一个变量中,并决定在模板中添加。但不起作用。

任何人都在这帮助我?

这是我的尝试:

我存储的路径:propBasePath:string = ${header.label.lacales}

当我这样控制时:

this.appProps = value;

console.log( this.appProps[this.propBasePath]['th_TH'] ) //this is not works!!
console.log( this.appProps.header.label.lacales.th_TH ) it's works.

在模板中:

<h1 style="font-size: 3rem">{{appProps[propBasePath].th_TH}}</h1>

以上也行不通。我知道我试图检索数据的方式是错误的。但是有人纠正我吗?

我也收到此错误ERROR ReferenceError: header is not defined

1 个答案:

答案 0 :(得分:1)

事实上,你不能这样做。您无法通过将路径作为prop1.prop2.prop3传递来从对象中找到属性,因为它会尝试找到属性const obj = { prop1: { prop2: { prop3: 'The value you are looking for' } } }; const myPath = 'prop1.prop2.prop3'; const deepValue = myPath.split('.').reduce((obj, current) => obj[current], obj); console.log(deepValue);本身。

为了解决您的问题,您可以执行类似的操作 以下示例在获取结果之前获取每个属性并获取下一个属性,直到找到您要查找的属性。

&#13;
&#13;
library(gridExtra)

cols <- c("grey90","yellow", "green")
t1 <- ttheme_default(
  core=list(bg_params = list(fill=cols)))

d <- data.frame(matrix(round(rnorm(18)),2,9))
names(d) <- letters[1:9]
grid.newpage()
grid.table(d, theme=t1)
&#13;
&#13;
&#13;

我希望这个例子可以帮助你:)