在聚合物中是否有可能将你从iron-ajax中获得的数据存储在一个数组中?

时间:2016-02-24 10:52:47

标签: javascript arrays ajax rest polymer

以我的方式我要求一个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>

感谢您的帮助!

2 个答案:

答案 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。