使用iron-ajax抓取字符串并插入页面

时间:2016-09-06 21:27:52

标签: ajax rest polymer polymer-1.0

<template is="dom-bind">
    <iron-ajax
        auto
        url="http://localhost:9000/api/version"
        last-response="{{versionNumber}}"
        verbose
    ></iron-ajax>
    <template is="dom-repeat" items="{{versionNumber}}">
        <small class="u-ml+">{{item.first}}</small>
    </template>
    <template>
        <small>[[versionNumber]]</small>
    </template>
</template>

我对Polymer有点遗失 - 我有一个iron-ajax元素设置为与API端点对话,它返回我的应用程序的当前版本。

我希望能够直接在页面上绑定此版本号。我在上面的代码中做错了吗?

我尝试使用dom-repeat模板试图抓住第一项,但我似乎没有得到任何东西。与尝试在<small>标记内进行单向绑定相同。

我的理解是,如果我在dom-bind模板中,我不必定义自定义元素。

1 个答案:

答案 0 :(得分:1)

是的,数据绑定在dom-bind模板内部工作,无需自定义元素。

代码中的一个问题是template

周围的<small>标记
<template>
  <small>[[versionNumber]]</small>
</template>

模板的内容本身不会在DOM中显示/呈现。有关模板的一些详细信息,请参阅http://www.html5rocks.com/en/tutorials/webcomponents/template/

使用<small>[[versionNumber]]</small>模板内的dom-bind和额外的模板标记应该有效。

另一个问题是,iron-ajax默认情况下将响应处理为JSON,因此在收到字符串时可能会遇到解析错误,而last-response将没有得到任何值。

您必须相应地指定iron-ajax的handleAs属性。

<iron-ajax handle-as="text" ...>

dom-repeat仅适用于数组。