【发布时间】:2017-02-13 01:49:11
【问题描述】:
已解决
我接受了@akc42 在下面发布的答案,并在getViews 函数定义之前添加了var self = this;,并将代码中的this 更改为self(并将self 添加到ytr 中,就像@987654327 @也是)
/已解决
我正在尝试从我的 youtube 频道获取观看次数。我要做的就是将计算结果返回给<p id="views"></p> 和<p id="youtubeRequest"></p>。
我有这个代码:
<template>
...
<div>
<p id="views" style="display:inline; ">100/Amount of views:</p>
<p id="youtubeRequest" style="display:inline">Amount of views:</p>
</div>
...
</template>
<script>
Polymer({
is: 'my-view1',
ready: function()
{
function getViews(params) {
$.ajax({
url: "https://www.googleapis.com/youtube/v3/channels?part=statistics&key=MyAPIkeyHere",
jsonp: "callback",
dataType: "jsonp",
success: function(response) {
this.ytr = this.$.youtubeRequest.innerHTML = response.items[0].statistics.viewCount;
var ytr2 = this.$.views.innerHTML = 100 / ytr;
this.ytr3 = ytr2.toPrecision(1);
},
});
}
getViews()
}
</script>
</dom-module>
我使用 this.$.id 而不是 document.getElementById("youtubeRequest"),因为它仅用于访问 Polymer 元素之外的项目。
我需要将计算值绑定到对应的<p>标签
【问题讨论】:
-
response.items必须返回undefined。 -
但这意味着什么?我是网络开发的新手,我不知道如何处理它
-
响应是什么,console.log 什么的
-
表示不存在
-
@Un1 如果你试图获取一个不存在的值,你会得到
undefined。就是这样。
标签: javascript polymer polymer-1.0 shadow-dom custom-element