聚合函数调用但没有结果

时间:2014-08-21 06:20:08

标签: javascript html polymer

  

旧问题:如何调用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';
}

我要么天真又没有经验才能看到问题,或者有一个可怕的复杂错误。任何帮助将不胜感激!

3 个答案:

答案 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