Не удается использовать полимерный элемент - "не удалось выполнить 'registerElement' на 'Document'"

я создал элемент, который я упрощу здесь для краткости, и я хотел сделать сквозной процесс и посмотреть, работает ли он.

это его Бауэр.файл 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 install test-element и он также загрузил каталог 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: не удалось выполнить "registerElement" на "Документ": ошибка регистрации для типа "undefined". Имя типа недействительный.

я пробовал много сообщений, и я не вижу, что мне здесь не хватает. Я загружаю webcomponents.js перед импортом HTML-файла элемента.

Итак, 2 вопроса:

  1. почему эта ошибка возникает и что я сделал неправильно? Я пропускаю polymer.js ? Если да, то почему он не загружался как часть зависимости ?
  2. если у меня много элементов, мне нужно включить polymer.html в каждом из них или я могу просто загрузить его один раз в ?

1 ответов


  1. вы смешиваете полимер 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>
  1. вы видите эту ошибку

Uncaught SyntaxError: не удалось выполнить "registerElement" на "Документ": ошибка регистрации типа "неопределенно". Имя типа недействительный.

потому что вы используете элементы ядра полимера которые совместимы с полимером 0,5 с полимером 0,9. Наряду с полимером 0.9 также модернизируются полимерные элементы. Следуйте за этим в должности для установки новых элементов.

Примечание: сердечник-элементы утилизированы в полимере 0.9 и заменены с железными элементами.

  1. правильно установить полимер 0.9 включить эти строки в твоей беседке.в JSON

    "dependencies": { "polymer": "Polymer/polymer#^0.9.0" }

и используйте эту команду терминал $ bower install