我正在尝试从 JS 中 Polymer 中的 JSON 文件读取子数组,并返回要在 dom-repeat
中使用的子数组。但是,它告诉我子数组未定义。我尝试以各种方式重新构建 JSON 文件,但没有成功。我认为我在某处没有使用正确的语法。
现在 JSON 看起来像这样:
{
"url": "dn8",
"volpage": "DN iii 1",
"languages": [{
"pt": {
"authors": ["Laera"],
"titlelan": "Title in Portuguese"
},
"fr": {
"authors": ["Moi"],
"titlelan": "Title in French"
},
"es": {
"authors": ["Jesus"]
}
}]
}
我正在尝试获取一个名为languageData
的子数组,它仅保存输入语言的特定数据。输入具有正确的 inputLanguage
值,例如“pt”。我的 JS 看起来像这样:
Polymer({
is: 'test-data',
properties: {
inputUrl: String,
inputLanguage: String,
inputData: {
type: Array,
notify: true,
value: function(){return []}
},
languageData: {
type: Array,
computed: '_computeLanguage(inputData,inputLanguage)'
}
},
_computeLanguage: function(inputData,inputLanguage) {
var lanarray = inputData.languages[inputLanguage];
return lanarray ? lanarray : "";
}
});
非常感谢任何帮助!
最佳答案
如您所见,JSON 的 languages
属性不是 Object
而是 Array
。
您的“polymer 代码”运行良好,问题是您试图获取languageData
,就好像它是一个数组一样:
var lanarray = inputData.languages[inputLanguage];
实际上,languages
包含一个对象数组,你无法通过这种方式找到你的lang对象。
可能的解决方案是:
var lanarray = inputData.languages[0][inputLanguage];
关于javascript - Polymer JS 从 JSON 文件读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43488557/