如何return javascript 编码结果到聚合物自定义元素的<template>?
How to return javascript code result to the polymer custom element's <template>?
已解决
我接受了@akc42 在下面发布的答案,我在 getViews
函数定义之前添加了 var self = this;
,并将代码中的 this
更改为 self
(并添加了 self
到 ytr
就像那样 100 / self.ytr
)
/已解决
我正在尝试从我的 YouTube 频道获取观看次数。我想要做的就是将 return 计算结果返回到 <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>
标签
您上面的代码显示了结束 </dom-module>
而不是开始。您是否正在尝试定义 Polymer 元素。
如果是这样,您只需使用数据绑定。您也可以使用 来执行 ajax 调用,但让其他位先工作。像这样
<dom-module id="my-view1">
<template>
...
<div>
<p id="views" style="display:inline; ">Amount of views: [[ytr]]</p>
<p id="youtubeRequest" style="display:inline">[[ytr3]]</p>
</div>
...
</template>
<script>
Polymer({
is: 'my-view1',
properties: {
ytr: {
type: Number,
value: 0
},
ytr3: {
type: Number,
value: 0
}
},
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>
已解决
我接受了@akc42 在下面发布的答案,我在 getViews
函数定义之前添加了 var self = this;
,并将代码中的 this
更改为 self
(并添加了 self
到 ytr
就像那样 100 / self.ytr
)
/已解决
我正在尝试从我的 YouTube 频道获取观看次数。我想要做的就是将 return 计算结果返回到 <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>
标签
您上面的代码显示了结束 </dom-module>
而不是开始。您是否正在尝试定义 Polymer 元素。
如果是这样,您只需使用数据绑定。您也可以使用 来执行 ajax 调用,但让其他位先工作。像这样
<dom-module id="my-view1">
<template>
...
<div>
<p id="views" style="display:inline; ">Amount of views: [[ytr]]</p>
<p id="youtubeRequest" style="display:inline">[[ytr3]]</p>
</div>
...
</template>
<script>
Polymer({
is: 'my-view1',
properties: {
ytr: {
type: Number,
value: 0
},
ytr3: {
type: Number,
value: 0
}
},
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>