如何识别启动核心ajax调用的自定义元素(来自核心ajax响应)



我正在使用Polymer生成一个自定义元素列表(明信片)。在每个自定义元素中都有一个图像的缩略图,当单击时,该缩略图将展开并显示"原始图像"。"原始图像"链接是从对imgur API(带有core-ajax组件)的ajax调用的响应中获得的。

我试过这两条路。。。但我仍然不确定最佳解决方案:

1.在每个post-card元素中使用一个核心ajax组件

这个解决方案似乎有效,但在我看来,它远非优雅。

2.使用单个core-ajax组件来管理每个API请求

文章列表.html

<core-ajax 
url="{{imgur_url}}"
handleAs="json"
on-core-response="{{handleResponse}}">
</core-ajax>
<template repeat="{{post, postIndex in posts}}">
<post-card post={{post}} id={{postIndex}} on-img-tap={{imgurRequest}}>
</template>

这个解决方案面临的主要问题是,当我从核心ajax获得响应时,我无法识别发送请求的自定义元素(明信片)。

我考虑创建一个扩展核心ajax的新自定义元素,允许我将发送请求的明信片的id作为参数传递(并在响应中返回)。。。但我认为一定有一个更简单的解决方案,对吧?

提前谢谢。

我假设您的imgurRequest函数中有类似this.$.ajaxId.go();的东西(关于第二个解决方案)。您可以通过ajax参数发送postIndex。你的imgurRequest看起来有点像这样:

imgurRequest: function(e, detail, sender) {
var postIndex = e.target.templateInstance.model.postIndex;
// Set a property (to postIndex) which is bound to ajax parameter list here ...
this.$.ajaxId.go();
}

通过这种方式,您可以在使用相同功能和相同核心ajax元素的情况下区分明信片。服务器当然应该将接收到的id发送回客户端。

相关内容

  • 没有找到相关文章

最新更新