我最近遇到了一些问题,从input元素绑定数据到iron-ajax的"body“属性。当我在聚合物0.5上使用core-ajax时,我可以很容易地绑定如下值:
<core-ajax
id="ajax"
method="POST"
contentType="application/json"
url="{{url}}"
body='{"username":"{{username}}", "password":"{{password}}"}'
handleAs="json"
on-core-response="{{responseHandler}}">
</core-ajax>现在我尝试了用iron-ajax做同样的事情。但它发送的是字面上的"{{username}}“和"{{password}}”而不是它们的值。代码如下:
<iron-ajax
id="ajax"
method="POST"
contentType="application/json"
url="{{url}}"
body='{"username":"{{username}}", "password":"{{password}}"}'
handle-as="json"
on-response="responseHandler">
</iron-ajax>如何让它工作?感谢您的回答:)
发布于 2015-05-19 18:05:27
您可以为ajax主体声明一个计算属性。就像这样
properties: {
...
ajaxBody: {
type: String,
computed: 'processBody(username, password)'
}
},
processBody: function(username, password) {
return JSON.stringify({username: username, password:password});
}然后将其添加到iron-ajax上
<iron-ajax ... body="{{ajaxBody}}"></iron-ajax>发布于 2015-06-29 05:17:01
另一种选择是使用Computed Bindings
您的代码将如下所示:
<iron-ajax
...
body="{{getAjaxBody(username, password}}}"
>
</iron-ajax>
<script>
Polymer({
.....
getAjaxBody: function(username, password) {
return JSON.stringify({username: username, password: password});
}
})
</script>https://stackoverflow.com/questions/30295236
复制相似问题