【发布时间】:2017-10-10 15:37:16
【问题描述】:
我正在使用 iron-pages 和 app-router 将我发送到一个新页面,我需要一个 iron-ajax 元素来发送带有从路由器发送的参数的请求。
但是,当我尝试在 Iron ajax 中添加我的参数 {{parameter.identifier}} 时,它不起作用。
我怀疑这与本地路由参数有关,而 iron-ajax 看不到它? 我试图为参数添加一个属性和一个 getter 函数,但似乎没有任何工作......
此外,我知道 ajax 是正确的,因为如果我将绑定变量 {{parameter.identifier}} 更改为数据库中存在的值,它就可以查询。
<dom-module id="cst-data">
<template>
<style>
</style>
<triplat-route name="dataRoute" params="{{parameters}}"></triplat-route>
<iron-ajax
id="getData"
auto
url="http:/.../oslc/os/OSLCPERSON?"
params='{"oslc.where":"dcterms:identifier={{parameters.identifier}}"
}'
headers='{"Content-Type": "application/json;charset=utf-8"'
handle-as="json"
on-response="handleResponse"
></iron-ajax>
<paper-card>{{parameters.identifier}}</paper-card>
<paper-card>{{dataRes.name}}</paper-card>
</template>
</dom-module>
<script>
Polymer({
is: "cst-data" ,
handleResponse: function () {
this.dataRes = this.$.getData.lastResponse['rdfs:member'];
}
});
</script>
【问题讨论】:
-
你能显示更多代码吗?您可以混淆敏感数据和网址。
-
感谢您的回答,为了清楚起见,我已经添加了其余代码。
-
它在 {{parameters.identifier}} 中填写了什么?它是未定义的吗?如果你想调试这个,你可以简单地在
=之前添加$符号。所以:params$='{"oslc.where":"dcterms:identifier={{parameters.identifier}}" }'。您将能够在浏览器中的开发人员工具中看到,实际结果是什么。还有一个问题,当您执行console.log(this.parameters)时,输出是什么?
标签: javascript ajax polymer url-routing iron-ajax