在 Polymer iron 上设置回调-ajax
Setting callback on Polymer iron-ajax
是否可以set/change iron-ajax 上的回调?
我有不同数量的请求,每个请求都有不同的回调。
正如 Scott 在评论中所说,您应该为每个请求使用单独的 iron-ajax。但是,如果您想动态发出请求,我倾向于使用动态创建的 iron-request - 如果只是因为它 returns 一个承诺,我可以随身携带。这是一个小例子
var dataPromise = new Promise(function(accept, reject) {
var sendOptions = {
url: '/api/queries',
method: 'POST',
handleAs: 'json',
headers: {'content-type': 'application/json'}
};
body = {};
body.name = name;
if (useId) {
body.id = parent.id;
}
if (useDates) {
body.startdate = parent.startdate;
body.enddate = parent.enddate;
}
sendOptions.body = body;
var request = document.createElement('iron-request');
request.send(sendOptions).then(function() {
accept(request.response);
});
});
然后我可以传递 dataPromise
,当我需要请求的结果时(在我的例子中是一个完全独立的元素)...
open: function(dataPromise, params, x, y) {
var self = this;
this.x = x;
this.y = y;
dataPromise.then(function(data) {
self.title = data.name;
self.heading = data.heading;
self.data = data.data;
self.$.griddialog.open();
});
this.params = params;
},
是否可以set/change iron-ajax 上的回调? 我有不同数量的请求,每个请求都有不同的回调。
正如 Scott 在评论中所说,您应该为每个请求使用单独的 iron-ajax。但是,如果您想动态发出请求,我倾向于使用动态创建的 iron-request - 如果只是因为它 returns 一个承诺,我可以随身携带。这是一个小例子
var dataPromise = new Promise(function(accept, reject) {
var sendOptions = {
url: '/api/queries',
method: 'POST',
handleAs: 'json',
headers: {'content-type': 'application/json'}
};
body = {};
body.name = name;
if (useId) {
body.id = parent.id;
}
if (useDates) {
body.startdate = parent.startdate;
body.enddate = parent.enddate;
}
sendOptions.body = body;
var request = document.createElement('iron-request');
request.send(sendOptions).then(function() {
accept(request.response);
});
});
然后我可以传递 dataPromise
,当我需要请求的结果时(在我的例子中是一个完全独立的元素)...
open: function(dataPromise, params, x, y) {
var self = this;
this.x = x;
this.y = y;
dataPromise.then(function(data) {
self.title = data.name;
self.heading = data.heading;
self.data = data.data;
self.$.griddialog.open();
});
this.params = params;
},