Javascript 聚合物函数中按索引号调用列表项

Javascript 聚合物函数中按索引号调用列表项,javascript,json,polymer,getattribute,plunker,Javascript,Json,Polymer,Getattribute,Plunker,我将通过荷兰Rijksmuseum(JSON输出)的API获得结果的聚合元素与获取特定位置坐标的元素组合在一起。博物馆的艺术品有时有一个名为“productionPlaces”的项目,可以在一个列表中包含多个值 该网站目前展示了艺术作品、部分元数据以及制作地点+这些地点的坐标: 现在,我希望能够仅显示位置+坐标(如果存在)。至少,如果“productionPlaces”为空,它应该打印出一些文本,例如“ProductionPlacesUnknown”。这应该是一个自调用函数 由于我在让函数自调用

我将通过荷兰Rijksmuseum(JSON输出)的API获得结果的聚合元素与获取特定位置坐标的元素组合在一起。博物馆的艺术品有时有一个名为“productionPlaces”的项目,可以在一个列表中包含多个值

该网站目前展示了艺术作品、部分元数据以及制作地点+这些地点的坐标:

现在,我希望能够仅显示位置+坐标(如果存在)。至少,如果“productionPlaces”为空,它应该打印出一些文本,例如“ProductionPlacesUnknown”。这应该是一个自调用函数

由于我在让函数自调用方面仍然有困难,我目前正在使用一个点击事件来执行我迄今为止创建的函数。我还使用了一个警报框,这样我就可以看到我在做什么

到达我需要的位置的第一步是让函数实际检查每个对象中所有“productionPlaces”列表项的值

到目前为止,我的当前功能如下所示:

checkPlace: function() {
  y = 1
  x = 0
  var place = this.object.artObjects[y].productionPlaces[x];
  alert (place)
警报框现在显示“Zuid Holland”,它实际上是第二个对象(y=1)的第一个productionPlace(x=0)。因此,该函数起作用

但是,为了达到我的最终目标(如上所述),函数需要自动识别API结果中的值“x”和“y”。我已经开始写“y”。但我没有成功,以下“按钮+功能”构造失败,因为警报框不再弹出:

<button on-click="{{checkPlace}}" objIndex="{{objIndex}}"></button>

checkPlace: function(s) {
var place =   this.object.artObjects[s.getAttribute('objIndex')].productionPlaces[0];
alert (place)

检查地点:功能{
var place=this.object.artObjects[s.getAttribute('objIndex')].productionPlaces[0];
警报(地点)

当前的模板绑定和模板重复应该允许我通过{{objIndex}}显示每个对象的索引号,这似乎很好。那么,为什么我的“按钮+函数”不可用呢在警报框中生成可见结果的构造?

我认为您最好使用if模板。该模板将查看您的响应中是否存在该信息,如果为真则显示该信息,如果不存在则隐藏该信息。类似于

<template if="{{obj.productionPlaces[0]}">
    // do something with {{obj.productionPlaces[0]}
</template>

//对{{obj.productionPlaces[0]}执行一些操作
也许吧


希望这对您有用。

这是指向Plunker的链接,如果您按下按钮,则该插件不起作用。似乎什么都不会发生。谢谢!我没有想到。我正在消除我对nog能够使该功能正常工作的失望。这是一个更简单的解决方案,效果更好:)。