以我的方式我要求一个REST-API,然后我回来了一个json数组。如何将数据存储在数组中? 是否可以通过on-response使用" responseHandler" -function来推送数组中的数据?
这是我的代码:
<dom-module id="rest-api">
<template>
<iron-ajax
auto
url="http://localhost:8080/cockpit/clients"
handle-as="json"
on-response="responseHandler"
last-response="{{response}}"
></iron-ajax>
<table>
<tr>
<th>Client-ID</th>
<th>Status</th>
</tr>
<template is="dom-repeat" items="{{response}}">
<tr>
<td>{{item.id}}</td>
<td>{{item.status}}</td>
</tr>
</template>
</table>
</template>
</dom-module>
<script>
Polymer({
is: 'rest-api',
properties: {
},
responseHandler: function(e, request) {
console.log("responseHandler fired!");
// Can I do anything here?
}
});
</script>
感谢您的帮助!
答案 0 :(得分:1)
是的,你可以。为此,您需要在responseHandler
func中添加一些代码。您可以获得所有项目中的数据,然后可以根据需要将其存储到位:
var items = e.detail.response;
for (var i=0; i<items.length; i++) {
//store your data
}
答案 1 :(得分:0)
这取决于您的响应类型的处理方式,但json的典型用法最终会在event.detail.response中进行。还有其他参数返回,就像从iron-request发送的原始请求一样。该事件是第一个参数。
来自handleAs上的聚合物目录 指定要在响应属性中存储的数据,并在响应事件中作为 event.detail.response 传递。
其中一个:
text:使用XHR.responseText。
xml:使用XHR.responseXML。
json:使用解析为JSON的XHR.responseText。
arraybuffer:使用XHR.response。
blob:使用XHR.response。
document:使用XHR.response。