【发布时间】:2014-07-31 13:45:39
【问题描述】:
我已经深入研究了聚合物的 ajax-core 元素,如下代码可以正常工作:
<core-ajax url="./ajax-test.txt" auto response="{{resp}}"></core-ajax>
<textarea value="{{resp}}"></textarea>
在这种情况下,我可以从{{resp}} 获取值。我已经深入研究了 core-ajax 源代码并了解它是如何完成的:
- 通过设置
attributes="response ..."使response成为已发布的属性 - 将ajax响应传递给
this.response
然后我尝试构建自己的ajax组件但没有成功,我的ajax组件代码是:
Polymer('louis-ajax', {
url: '',
response: null,
ready: function() {
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
this.response = xmlhttp.responseText;
}
}.bind(this);
xmlhttp.open("GET",this.url,true);
xmlhttp.send();
}
});
我的应用代码是这样的:
<louis-ajax url="http://polymer.snspay.cn/api/posts.json" response="{{response}}"></louis-ajax>
<span>We have got the ajax response as</span> : <input type='text' value="{{response}}" />
结果是ajax请求已经成功完成,但是input的值是“{{response}}”,而不是{{response}}的值,所以我觉得我理解的有问题已发布的属性有效,有帮助吗?谢谢。
【问题讨论】:
-
我自己搞定了,代码必须在
<template>标签中,否则不起作用。我的应用代码不在任何模板中。
标签: polymer