Не удается использовать полимерный элемент - "не удалось выполнить '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 вопроса:
- почему эта ошибка возникает и что я сделал неправильно? Я пропускаю
polymer.js
? Если да, то почему он не загружался как часть зависимости ? - если у меня много элементов, мне нужно включить
polymer.html
в каждом из них или я могу просто загрузить его один раз в ?
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>
- вы видите эту ошибку
Uncaught SyntaxError: не удалось выполнить "registerElement" на "Документ": ошибка регистрации типа "неопределенно". Имя типа недействительный.
потому что вы используете элементы ядра полимера которые совместимы с полимером 0,5 с полимером 0,9. Наряду с полимером 0.9 также модернизируются полимерные элементы. Следуйте за этим в должности для установки новых элементов.
Примечание: сердечник-элементы утилизированы в полимере 0.9 и заменены с железными элементами.
-
правильно установить полимер 0.9 включить эти строки в твоей беседке.в JSON
"dependencies": { "polymer": "Polymer/polymer#^0.9.0" }
и используйте эту команду терминал $ bower install