旧问题:如何调用Polymer函数? (检查编辑,我不想在这里填写代码)
重写:
我有一个<core-scaffold>
,我想调用togglePanel()
函数。 (它位于project_root/index.html
。)我这样做:
<core-icon-button onclick="document.querySelector('core-scaffold').togglePanel();"
icon="drawer></core-icon-button>
在Chrome的Inspector中,我可以看到这不会导致错误,但它不会在屏幕上执行任何操作。我的代码在project_root/bower_components/core-scaffold/core-scaffold.html
中调用此函数:
togglePanel: function() {
this.$.drawerPanel.togglePanel();
}
反过来在project_root/bower_components/core-drawer-panel/core-drawer-panel.html
中调用此函数:
togglePanel: function() {
this.selected = this.selected === 'main' ? 'drawer' : 'main';
}
我要么天真又没有经验才能看到问题,或者有一个可怕的复杂错误。任何帮助将不胜感激!
答案 0 :(得分:2)
您可以使用查询选择器直接获取元素,并像其他html页面一样在onclick上调用其方法
<button onclick="document.querySelector('core-drawer-panel').togglePanel();">toggle drawer</button>
答案 1 :(得分:2)
我也遇到了这个问题。问题是closeDrawer(),openDrawer()和togglePanel()仅在屏幕大小小于responsiveWidth的值时才可用。
我认为逻辑是,如果你有屏幕空间,你总是想要显示抽屉。当然,这可以通过扩展core-drawer-panel和制作自定义core-scaffold实现来进行调整。
答案 2 :(得分:0)
更改core-drawer-panel.html forceNarrow=true
中的已发布属性。请参阅@ Call function on polymer navigation drawer panel