我正在制作一个自定义元素,以显示亚音速服务器的专辑封面墙。声明时,元素将查询服务器并获得200响应。响应在控制台中正确记录。但是在浏览器中没有呈现任何内容。
<link rel="import" href="../bower_components/core-ajax/core-ajax.html">
<link rel="import" href="album-info-big-art.html">
<polymer-element name="albums-wall" attributes="url">
<template>
<core-ajax auto url="{{url}}" handleAs="json" response="{{response}}"></core-ajax>
<template id='albums' repeat="{{response.subsonic-response.albumList2.album}}">
<album-info-big-art artist='{{artist}}' title='{{name}}' img='{{coverArt}}'></album-info-big-art>
</template>
</template>
<script>
Polymer('albums-wall',{
responseChanged: function(e) {
var albums = this.response;
console.log(albums);
}
});
</script>
</polymer-element>
响应看起来像。
Object {subsonic-response: Object}
subsonic-response: Object
albumList2: Object
album: Array[60]
__proto__: Object
status: "ok"
version: "1.10.2"
xmlns: "http://subsonic.org/restapi"
__proto__: Object
__proto__: Object
我很确定我错过了js部分的内容。
答案 0 :(得分:2)
问题是属性名称 subsonic-response 。您不能在路径属性名称中使用短划线。重写表达式以使用数组语法:response['subsonic-response']...
。