Polymer 3.0 iron-ajax 返回空响应
Polymer 3.0 iron-ajax returning null response
我在专业上使用过 Polymer 1 和 2,但直到今天我才尝试过 Polymer 3.0。我正在尝试测试响应,但我无法让它工作。
这是我的熨斗-ajax 组件:
<iron-ajax id="requestData" url="/src/witches-brew-app/requests.json" handle-as="json"
last-response="{{requests}}"
on-response="_requestResponse"
on-error="_requestError">
</iron-ajax>
我有一个调用 iron-jax 的 generateRequest 函数的按钮,如您所见,收到响应时会调用一个函数。
_requestResponse(e){
console.info(e);
console.info(this.requests);
}
_getRequests(){
console.info("_getRequests")
this.$.requestData.generateRequest().then(function (e) {
console.info("_getRequests PROMISE")
console.info(this.requests);
}.bind(this));
}
承诺似乎从未 return,但网络选项卡显示了我在 Google Chrome 中的所有数据!
Networking tab
_requestResponse 函数确实被触发,但它也将 requests 属性 打印为 null。
知道是什么原因造成的吗?我一辈子都弄不明白。我也尝试过使用自动标志,但我遇到了完全相同的问题。
很可能您已经在 requests
属性 收到了数据。但是在上面的代码中,由于检索数据的时间,您收到了空值。因此,如果您观察到如下所示的 属性,您可能会看到 iron-ajax
收到的数据:
这里是铁的工作示例-ajax DEMO
static get properties() { return {
requests: {
type: Object,
observer:'_requestResponse' }
}
_requestResponse(e){
if (e) {
console.info(e);
console.info(this.requests);
}
}
- 当然,您需要删除
on-response="_requestResponse"
编辑:
static get observers() { return ['_requestResponse(requests)'] }
我在专业上使用过 Polymer 1 和 2,但直到今天我才尝试过 Polymer 3.0。我正在尝试测试响应,但我无法让它工作。
这是我的熨斗-ajax 组件:
<iron-ajax id="requestData" url="/src/witches-brew-app/requests.json" handle-as="json"
last-response="{{requests}}"
on-response="_requestResponse"
on-error="_requestError">
</iron-ajax>
我有一个调用 iron-jax 的 generateRequest 函数的按钮,如您所见,收到响应时会调用一个函数。
_requestResponse(e){
console.info(e);
console.info(this.requests);
}
_getRequests(){
console.info("_getRequests")
this.$.requestData.generateRequest().then(function (e) {
console.info("_getRequests PROMISE")
console.info(this.requests);
}.bind(this));
}
承诺似乎从未 return,但网络选项卡显示了我在 Google Chrome 中的所有数据!
Networking tab
_requestResponse 函数确实被触发,但它也将 requests 属性 打印为 null。
知道是什么原因造成的吗?我一辈子都弄不明白。我也尝试过使用自动标志,但我遇到了完全相同的问题。
很可能您已经在 requests
属性 收到了数据。但是在上面的代码中,由于检索数据的时间,您收到了空值。因此,如果您观察到如下所示的 属性,您可能会看到 iron-ajax
收到的数据:
这里是铁的工作示例-ajax DEMO
static get properties() { return {
requests: {
type: Object,
observer:'_requestResponse' }
}
_requestResponse(e){
if (e) {
console.info(e);
console.info(this.requests);
}
}
- 当然,您需要删除
on-response="_requestResponse"
编辑:
static get observers() { return ['_requestResponse(requests)'] }