聚合物iron-ajax数据绑定示例不起作用

时间:2015-06-03 18:41:20

标签: ajax polymer

我在Polymer 1.0.2中遇到了铁-ajax和数据绑定问题。甚至没有稍微改变example from the Polymer documentation正在发挥作用。

以下是我的更改代码:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <script src="../../../bower_components/webcomponentsjs/webcomponents-lite.js"></script>
    <link rel="import" href="../../../bower_components/polymer/polymer.html">
    <link rel="import" href="../../../bower_components/iron-ajax/iron-ajax.html">

</head>
<body>

<template is="dom-bind">

    <iron-ajax
            auto
            url="http://jsonplaceholder.typicode.com/posts/"
            lastResponse="{{data}}"
            handleAs="json">
    </iron-ajax>

    <template is="dom-repeat" items="{{data}}">
        <div><span>{{item.id}}</span></div>
    </template>

</template>

<script>
    (function (document) {
        'use strict';

        var app = document.querySelector('#app');

        window.addEventListener('WebComponentsReady', function() {
            var ironAjax = document.querySelector('iron-ajax');
            ironAjax.addEventListener('response', function() {
                console.log(ironAjax.lastResponse[0].id);
            });
            ironAjax.generateRequest();
        });

    })(document);

</script>
</body>
</html>

我改变的是输入一个URL以获得真正的JSON响应并设置auto和handleAs属性。我还添加了一个带有侦听器的小脚本,用于响应事件。听众工作正常并处理响应,但是dom-repeat模板中的跨度不会被渲染。

我使用的是聚合物1.0.2和铁元素1.0.0

2 个答案:

答案 0 :(得分:10)

在示例的-属性中,您似乎缺少lastresponse字符的文档。

您必须将lastResponse更改为last-response。 请查看iron-ajax github页面中的this示例。

答案 1 :(得分:2)

当你在元素上使用属性时,你必须将camelcase句子转换为破折句,我的意思是:

lastResponse是映射到最后响应

Property name to attribute name mapping