Javascript 聚合物中的数据绑定
我有一个函数,它在调用时给我一个JSON返回值Javascript 聚合物中的数据绑定,javascript,json,polymer,Javascript,Json,Polymer,我有一个函数,它在调用时给我一个JSON返回值 getJSON function(url, success){ var ud = '_' + +new Date, script = document.createElement('script'), head = document.getElementsByTagName('head')[0] || document.documentElement; window[ud
getJSON function(url, success){
var ud = '_' + +new Date,
script = document.createElement('script'),
head = document.getElementsByTagName('head')[0]
|| document.documentElement;
window[ud] = function(data) {
head.removeChild(script);
success && success(data);
};
script.src = url.replace('callback=?', 'callback=' + ud);
head.appendChild(script);
}
为了调用函数,我使用以下代码
getJSON('https://newsapi.org/v1/articles?source=techcrunch&apiKey={APIKEY}', function(data){
//Stuff to be done with the data
});
然后我有一张纸卡,我想把我得到的JSON值绑定到上面
<paper-card heading="Card Title">
<div class="card-content">{{json}}</div>
</paper-card>
{{json}}
我要做的是调用getJSON函数,调用函数并设置返回到纸卡中的
{{JSON}
数据元素的JSON值。我已经尝试了5种以上的方法,但我不能做我想做的事。我是polymer的新手,请帮助我。您可以使用polymer的
元素为您获取数据,而不是编写自己的getJSON()
方法
新闻API看起来类似于此JSON对象:
{
“状态”:“确定”,
“来源”:“下一个网站”,
“sortBy”:“最新”,
“条款”:[{
“作者”:“TNW交易”,
“标题”:“您不想错过TNW交易的4个优惠”,
“描述”:“我们介绍了TNW的一些优秀产品……”,
}, {
“作者”:“布莱恩·克拉克”,
“标题”:“令人惊叹的北极光4k视频”,
“说明”:“调谐和区域输出…”,
}]
}
我假设您想显示articles[]
数组中的每篇文章
元素可以从新闻API请求数据,并将服务器响应存储在其中,您可以将其绑定到可以在模板中使用的属性
在下面的示例中,我们看到last response=“{{data}}”
,
将新闻API响应输出到数据中(即,像设置this.data=response
,其中response
是上面的JSON对象)。考虑到前面提到的数据的形状,我们知道,data.articles
将访问文章数组,该数组可以传递给进行迭代:
<template>
<iron-ajax url="https://newsapi.org/v1/articles?source=the-next-web&sortBy=latest&apiKey=|APIKEY|"
auto
last-response="{{data}}">
</iron-ajax>
<template is="dom-repeat" items="[[data.articles]]">
<paper-card heading="[[item.title]]">
<div class="card-content">
<p>[[item.description]]</p>
</div>
</paper-card>
</template>
</template>
您可以使用Polymer的
元素来获取数据,而不是编写自己的getJSON()
方法
新闻API看起来类似于此JSON对象:
{
“状态”:“确定”,
“来源”:“下一个网站”,
“sortBy”:“最新”,
“条款”:[{
“作者”:“TNW交易”,
“标题”:“您不想错过TNW交易的4个优惠”,
“描述”:“我们介绍了TNW的一些优秀产品……”,
}, {
“作者”:“布莱恩·克拉克”,
“标题”:“令人惊叹的北极光4k视频”,
“说明”:“调谐和区域输出…”,
}]
}
我假设您想显示articles[]
数组中的每篇文章
元素可以从新闻API请求数据,并将服务器响应存储在其中,您可以将其绑定到可以在模板中使用的属性
在下面的示例中,我们看到last response=“{{data}}”
,
将新闻API响应输出到数据中(即,像设置this.data=response
,其中response
是上面的JSON对象)。考虑到前面提到的数据的形状,我们知道,data.articles
将访问文章数组,该数组可以传递给进行迭代:
<template>
<iron-ajax url="https://newsapi.org/v1/articles?source=the-next-web&sortBy=latest&apiKey=|APIKEY|"
auto
last-response="{{data}}">
</iron-ajax>
<template is="dom-repeat" items="[[data.articles]]">
<paper-card heading="[[item.title]]">
<div class="card-content">
<p>[[item.description]]</p>
</div>
</paper-card>
</template>
</template>
您是否考虑使用<代码> <代码>元素而不是编写此GETJSON函数?您可以使用计算绑定来创建请求的URL。@LeBird怎么做?我在编写数据绑定方面遇到了困难。您是否考虑过使用<代码> <代码>元素来代替编写GETJSON函数?您可以使用计算绑定来创建请求的URL。@LeBird怎么做?我在进行数据绑定时遇到了困难。实际上我更喜欢JS方式,因为我正在处理新闻文章。你能告诉我我是怎么做到的吗?无论如何谢谢你的帮助。@NikhilRaghavendra请参阅更新的答案。我已经描述了如何设置处理程序来处理数据。因此变量:data将包含NewsAPI提供的JSON对象?@NikhilRaghavendra YesThanks获取帮助!我会接受这个答案。实际上我更喜欢JS的方式,因为我正在处理新闻文章。你能告诉我我是怎么做到的吗?无论如何谢谢你的帮助。@NikhilRaghavendra请参阅更新的答案。我已经描述了如何设置处理程序来处理数据。因此变量:data将包含NewsAPI提供的JSON对象?@NikhilRaghavendra YesThanks获取帮助!我会接受这个答案。