我将通过荷兰国立博物馆的 API(JSON 输出)获取结果的 Polymer 元素与获取特定地点坐标的元素组合在一起。博物馆的艺术品有时有一个名为“productionPlaces”的项目,它可以在一个列表中保存多个值。
该网站目前显示艺术作品,其中一些元数据,以及生产地点+这些地点的坐标:http ://plnkr.co/edit/nbTN1kNzcqHANWECB5fI?p=preview
现在,我希望能够仅显示地点 + 坐标(如果存在)。至少如果“productionPlaces”为空,它应该打印出一些文本,例如“Production place unknown”。这应该是一个自调用函数。
由于我仍然无法让函数自调用,因此我目前正在使用单击事件来执行我迄今为止创建的函数。我还使用了一个警告框,这样我就可以看到我在做什么。
到达我需要的位置的第一步是让函数实际检查每个对象中所有“productionPlaces”列表项的值。
到目前为止,我当前执行此操作的功能如下:
checkPlace: function() {
y = 1
x = 0
var place = this.object.artObjects[y].productionPlaces[x];
alert (place)
警报框现在显示“Zuid-Holland”,这确实是第二个对象 (y=1) 的第一个生产地点 (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)
当前的模板绑定和模板重复应该允许我通过 {{objIndex}} 显示每个对象的索引号,这似乎工作正常。那么,为什么我的“按钮+功能”构造不会在警报框中产生可见的结果?