Javascript Can';t使用聚合物元件-“;未能执行';注册表项';在';文件'&引用;

Javascript Can';t使用聚合物元件-“;未能执行';注册表项';在';文件'&引用;,javascript,polymer,Javascript,Polymer,我创建了一个元素,为了简洁起见,我将在这里对它进行简化,我想做一个端到端的过程,看看它是否有效 这是它的bower.json文件: { "name": "test-element", "version": "0.0.1", "authors": [ "my name" ], "description": "A description", "license": "MIT", "ignore": [ "**/.*", "node_modules",

我创建了一个元素,为了简洁起见,我将在这里对它进行简化,我想做一个端到端的过程,看看它是否有效

这是它的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测试元素,它还下载了polymer目录,这是我想要的依赖项,尽管那里没有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>
但当我加载页面时,我在控制台中看到:

未捕获的语法错误:未能在上执行“registerElement” “文档”:类型“未定义”的注册失败。类型名称为 无效

我试过很多帖子,但我看不出我在这里遗漏了什么。在导入元素的HTML文件之前,我正在加载
webcomponents.js

因此,有两个问题:

  • 为什么会发生这种错误?我做错了什么?我是否丢失了polymer.js?如果是这样,为什么它不作为依赖项的一部分下载
  • 如果我有很多元素,我是否需要在每个元素中都包含
    polymer.html
    ,还是可以在
    index.html
    文件中加载一次
  • 你将聚合物0.5与0.9混合。聚合物0.9发生了很大变化。例如,聚合物元素已被dom模块取代 之前:

    <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>
    
    
    你好,我的本地朋友
    聚合物();
    
    之后:

    <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>
    
    
    你好,我的本地朋友
    聚合物({is:“register me”});
    
  • 您看到了这个错误
  • 未捕获的语法错误:未能在上执行“registerElement” “文档”:类型“未定义”的注册失败。类型名称为 无效

    因为您使用的聚合物芯元件与聚合物0.5和聚合物0.9兼容。随着聚合物0.9的出现,聚合物元素也得到了升级。按照此步骤安装新元素

    注:芯元件在聚合物0.9中报废,并更换为铁元件

  • 要正确安装Polymer 0.9,请在bower.json中包含这些行

    “依赖项”:{
    “聚合物”:“聚合物/聚合物#^0.9.0”
    }


  • 并使用这个终端命令
    $bower install

    谢谢,我将在周末尝试实现它,看看它是否有效。那么polymer.html的加载量呢?它们是每个元素必需的还是一次就足够了?建议在自定义元素中作为第一次导入添加。但这很好,因为有时浏览器可能会抱怨说您使用的是聚合物,而没有导入聚合物。嘿,@AKh,我在
    crisping
    我的应用程序后收到了几乎相同的错误,但在我的情况下,
    注册“dom模块”类型失败。具有该名称的类型已注册
    。你能给我点建议吗?你是不是先硫化后脆化了?