我是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 install
和bower install
。
答案 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>
在网页上正确呈现)。