这是它的bower.json文件:
{ "name": "test-element","version": "0.0.1","authors": [ "my name" ],"description": "A description","license": "MIT","ignore": [ "**/.*","node_modules","bower_components","test","tests" ],"dependencies": { "polymer": "~0.9.0" } }
我将它上传到我的测试仓库,并在WebStorm中打开了一个新项目.
我做了bower安装test-element并且它也下载了聚合物目录,这是我想要的依赖项,尽管那里没有js文件. (不应该有一个要引用的polymer.js文件吗?)
现在,我加载的索引文件在正文中有这个:
<script src="bower_components/webcomponentsjs/webcomponents.js"></script> <link rel="import" href="bower_components/test-element/test-element.html"> <test-element elements="[...array contents...]"> </test-element>
我的test-element.html:
<link rel="import" href="../../../polymer/polymer.html"> <polymer-element name="test-element" ....> <template> ... doesn't really matter ... </template> <script> Polymer({ created: function () { .. } }); </script> </polymer-element>
但是当我加载页面时,我在控制台中看到了这个:
Uncaught SyntaxError: Failed to execute ‘registerElement’ on
‘Document’: Registration Failed for type ‘undefined’. The type name is
invalid.
我试过很多帖子,我看不到我在这里缺少什么.我在导入元素的HTML文件之前加载webcomponents.js.
那2个问题:
>为什么会出现这种错误?我做错了什么?我错过了polymer.js吗?如果是这样,为什么不下载作为依赖的一部分?
>如果我有很多元素,我是否需要在每个元素中包含polymer.html,或者我可以在index.html文件中加载一次?
解决方法
之前:
<polymer-element name="register-me"> <template> <div>Hello from my local DOM</div> </template> <script> Polymer(); </script> </polymer-element>
后:
<dom-module id="register-me"> <template> <div>Hello from my local DOM</div> </template> </dom-module> <script> Polymer({is: "register-me"}); </script>
>您看到此错误
Uncaught SyntaxError: Failed to execute ‘registerElement’ on
‘Document’: Registration Failed for type ‘undefined’. The type name is
invalid.
因为您使用的聚合物核心元素与Polymer 0.5和Polymer 0.9兼容.与聚合物0.9一起,聚合物元素也得到升级.按照此post安装新元素.
注意:核心元素在聚合物0.9中报废并用铁元素代替.
>要正确安装Polymer 0.9,请在bower.json中包含这些行
“依赖”:{
“聚合物”:“聚合物/聚合物#^ 0.9.0”
}
并使用此终端命令$bower install