聚合物元素已经为纸张按钮注册了错误

时间:2017-01-29 03:16:57

标签: polymer polymer-1.0 polymer-starter-kit

我是Polymer的新手,我正试图在我的页面上添加<paper-button>。该项目基于Polymer Starter Kit。当我尝试使用<paper-button>元素时,我在控制台中收到一条错误,指出该名称已经注册。我不知道为什么会这样说。我只使用paper-button.html引用一次。错误是:

Uncaught NotSupportedError: Failed to execute 'registerElement' on 'Document': Registration failed for type 'dom-module'. A type with that name is already registered.

以下是生成该错误的代码

<link rel="import" href="../bower_components/polymer/polymer.html">
<link rel="import" href="/src/bower_components/paper-button/paper-button.html">  
<link rel="import" href="shared-styles.html">

<dom-module id="my-view1">
  <template>
    <style include="shared-styles">
      :host {
        display: block;

        padding: 10px;
      }

      h1 {
        text-align: center;
      }
    </style>

    <div class="card">
      <!-- <div class="circle">1</div> -->
      <h1>Gas vs. Electric Car Calculator</h1>
      <paper-button>$20,000</paper-button>
    </div>
  </template>

  <script>
    Polymer({
      is: 'my-view1',
    });
  </script>
</dom-module>

以下是GitHub存储库的链接,其中包含代码:https://github.com/Renniesb/paper-test。要测试代码,您可以下载并运行:npm installbower install

1 个答案:

答案 0 :(得分:3)

您的HTML import for paper-button指向不存在的路径:

<link rel="import" href="../src/bower_components/paper-button/paper-button.html">

您的bower_components位于项目的根目录中,而不是src/下。导入应该是:

<link rel="import" href="../bower_components/paper-button/paper-button.html">

此外,您的bower.json缺少对paper-button的依赖。您可以添加:

bower install --save PolymerElements/paper-button

正如在聊天中发现的那样,你使用的是Chrome 41,它已经很老了。我不确定与该版本Chrome的兼容性。我建议升级。

我在Chrome 55,macOS Sierra确认了我的建议工作(如<paper-button>在网页上正确呈现)。