Javascript 烧成聚合物功能
我试图在单击按钮时启动另一个HTML中的函数 我的第一个带有中按钮的HTML如下所示:Javascript 烧成聚合物功能,javascript,html,polymer,polymer-1.0,Javascript,Html,Polymer,Polymer 1.0,我试图在单击按钮时启动另一个HTML中的函数 我的第一个带有中按钮的HTML如下所示: <template> <paper-icon-button on-tap="_deleteConfigUsage"></paper-icon-button> </template> <script> Polymer({ is: "HTML1", _deleteConfigUsage: function(e){ this.fire('refres
<template>
<paper-icon-button on-tap="_deleteConfigUsage"></paper-icon-button>
</template>
<script>
Polymer({
is: "HTML1",
_deleteConfigUsage: function(e){
this.fire('refreshUsagesRequest');
}
})
</script>
<script>
Polymer({
is: "HTML2",
listeners:{
'refreshUsagesRequest': '_generateUsagesRequest'
},
_generateUsagesRequest: function(e){
document.getElementById("getConfigurationUsagesRequest").generateRequest();
}
})
</script>
聚合物({
是:“HTML1”,
_deleteConfigUsage:函数(e){
此.fire('RefreshUsageRequest');
}
})
我的第二个HTML如下所示:
<template>
<paper-icon-button on-tap="_deleteConfigUsage"></paper-icon-button>
</template>
<script>
Polymer({
is: "HTML1",
_deleteConfigUsage: function(e){
this.fire('refreshUsagesRequest');
}
})
</script>
<script>
Polymer({
is: "HTML2",
listeners:{
'refreshUsagesRequest': '_generateUsagesRequest'
},
_generateUsagesRequest: function(e){
document.getElementById("getConfigurationUsagesRequest").generateRequest();
}
})
</script>
聚合物({
是:“HTML2”,
听众:{
“RefreshUsageRequest”:“\u GenerateUsageRequest”
},
_generateUsagesRequest:函数(e){
document.getElementById(“getConfigurationUsageRequest”).generateRequest();
}
})
此传输涉及3个html文件。第一个HTML、第二个HTML和同时调用它们的视图HTML
在函数中,当单击图标时,第二个HTML中的函数似乎没有运行。我在听众中做的每件事都正确吗?第一个函数应该是事件吗
感谢所有帮助自定义元素应至少包含两个或多个单词。正如尼古拉斯在上面解释的那样,必须是类似连字符的
x-htm1
和x-html2
。那样的话。由于聚合物1.x或2.x,这种燃烧功能有所不同。在您的情况下,您使用1.x版本。所以,主要目的是激发其他元素的功能。这也是另一个问题,如果x-html2
是x-html1
的子元素,那么:您应该给出一个id名称,并且可以使用
this.$.html2._generateUsagesRequest(); //html2 is id name of x-html2.html
但是,如果两个元素都是主文档的子元素(与您的示例类似),则可以从一个子元素调用另一个子元素的函数:
在x-main.html
<x-html1 id="html1" on-refresh-usages-request='m_generateUsagesRequest'></x-html1>
<x-html2 id="html2"></x-html2>
Polymer({
is: "x-main",
m_generateUsagesRequest(){
this.$.html2._generateUsagesRequest();
}
聚合物({
是:“x-main”,
m_generateUsagesRequest(){
此.$.html2._generateUsagesRequest();
}
在x-html1.html
<template>
<paper-icon-button on-tap="_deleteConfigUsage"></paper-icon-button>
</template
<script>
Polymer({
is: "x-html1",
_deleteConfigUsage(e){ // let say u need to fires x-html2.html's function
this.fire('refresh-usages-request');
}
})
</script>
Custome元素至少应该是两个或两个以上的单词。并且必须像Nicholas上面解释的那样是连字号x-htm1
和x-html2
。在这种情况下,由于polymer 1.x或2.x,此激发函数有差异。在您的情况下,您使用的是1.x版本。因此,主要目的是激发另一个元素函数。这也是另一个需要解决的问题如果x-html2
是x-html1
的子元素,那么:您应该给出一个id名称,并且可以使用
this.$.html2._generateUsagesRequest(); //html2 is id name of x-html2.html
但是,如果两个元素都是主文档的子元素(与您的示例类似),则可以从一个子元素调用另一个子元素的函数:
在x-main.html
<x-html1 id="html1" on-refresh-usages-request='m_generateUsagesRequest'></x-html1>
<x-html2 id="html2"></x-html2>
Polymer({
is: "x-main",
m_generateUsagesRequest(){
this.$.html2._generateUsagesRequest();
}
聚合物({
是:“x-main”,
m_generateUsagesRequest(){
此.$.html2._generateUsagesRequest();
}
在x-html1.html
<template>
<paper-icon-button on-tap="_deleteConfigUsage"></paper-icon-button>
</template
<script>
Polymer({
is: "x-html1",
_deleteConfigUsage(e){ // let say u need to fires x-html2.html's function
this.fire('refresh-usages-request');
}
})
</script>
首先,您的元素名是。您不能将html1
或html2
作为元素名。在执行任何其他操作之前,打开控制台并检查错误。这是一个示例,这些不是html名称-它们是实际文件名的填充符。好的,您的元素是同级的吗?或者html1
是p不是html2
?首先,元素名是。元素名不能是html1
或html2
。在执行其他操作之前,请打开控制台并检查错误。这是一个示例,这些不是html名称-它们是实际文件名的填充符。好的,元素是同级的吗?或者html1
是html2
的父级吗?或者,如果主文档不是聚合元素,则可以使用简单的document.querySelector('#html1').addEventListener('refresh-usages-request',()=>{document.querySelector('#html2')。\u deleteConfiguuse})
或者,如果主文档不是聚合元素,则可以使用简单的document.querySelector('#html1').addEventListener('refresh-usages-request',()=>{document.querySelector('#html2')。_deleteConfiguusage}