observe.js中的纸张下拉菜单错误

时间:2014-09-30 13:26:29

标签: html runtime-error polymer

当我尝试复制在我的apache2服务器上的聚合物网站上工作得非常好的纸张下拉菜单时,我收到此错误。按下下拉按钮时。

Exception caught during observer callback: TypeError: Cannot read property 'margin' of undefined
at core-dropdown-overlay.Polymer.positionTarget (http://localhost/components/core-dropdown/core-dropdown-overlay.html:125:26)
at core-dropdown-overlay.Polymer.updateTargetDimensions (http://localhost/components/core-overlay/core-overlay.html:445:12)
at core-dropdown-overlay.Polymer.prepareRenderOpened (http://localhost/components/core-overlay/core-overlay.html:347:14)
at core-dropdown-overlay.Polymer.openedChanged (http://localhost/components/core-overlay/core-overlay.html:306:12)
at core-dropdown-overlay.g.invokeMethod (http://localhost/components/polymer/polymer.js:12:13312)
at core-dropdown-overlay.g.notifyPropertyChanges (http://localhost/components/polymer/polymer.js:12:11598)
at Object.Observer.report_ (http://localhost/components/platform/platform.js:12:12614)
at Object.createObject.check_ (http://localhost/components/platform/platform.js:12:18112)
at c (http://localhost/components/platform/platform.js:12:5465) 

HTML

<!doctype html>
<html>

<head>
    <!-- Style Sheets -->
    <!--  <LINK REL=StyleSheet HREF="css/viewer.css" TITLE="ViewerPage"> -->

    <!-- Dependencies -->

     <!-- Polymer Dependencies -->
    <script src="components/platform/platform.js"></script>

    <link rel="import" href="components/paper-dropdown-menu/paper-dropdown-menu.html">
    <link rel="import" href="components/core-elements/core-elements.html">
    <link rel="import" href="components/paper-elements/paper-elements.html">

</head>

<body>
      <paper-dropdown-menu selected="Financier" valueattr="label">
      <paper-item label="Croissant"></paper-item>
      <paper-item label="Donut"></paper-item>
      <paper-item label="Financier"></paper-item>
      <paper-item label="Madeleine"></paper-item>
    </paper-dropdown-menu>
</body>
</html>

按下该按钮时,无法看到或选择任何其他值。它只是在一个小盒子中呈现为金融家,其中第一个纸质项目可以查看。

我已经使用bower和聚合物上的命令安装了所有上述依赖项,据我所知,它假设为我处理依赖性问题,所以我似乎不知道为什么我有上述错误。

编辑:

经过进一步研究,看来这行代码正在打破组件/ core-dropdown / core-dropdown-overlay.html:125:26

var dims = this.dimensions;
var margin = dims.margin;

1 个答案:

答案 0 :(得分:2)

亚当,

这可能是因为您的Web服务器上安装的Polymer组件是旧版本(例如,这种情况发生在0.3.5组件中),而不是Polymer站点上的组件。您可以在polymer.js文件的标题中查看您的版本。

要解决此问题,请先下载最新的(0.4.2)组件。

升级到0.4.2后,您可能会收到以下错误:

Uncaught TypeError: undefined is not a function

这是因为当前纸张下拉菜单下载中包含的core-overlay.html版本有一个拼写错误:

Polymer.flush();

从view-source:https://www.polymer-project.org/components/core-overlay/core-overlay.html复制最新代码,将其更正为:

Platform.flush();
相关问题