Использование полимера с внешними файлами js
Я хочу использовать trumbowyg.js в моем полимерном элементе, он включает jquery.js и trumbowyg.js. Он отлично работает в Firefox, но не в Chrome.
Это дает ошибку, возможно, из-за поиска / разделения shadow dom в chrome. Ошибка происходит, когда когда-либо trumbowyg.js использует "это".
Что здесь не так? Что я должен делать по-другому?
Я использую Polymer 2.0
ошибка:
Uncaught TypeError: Невозможно прочитать свойство 'toLowerCase' из неопределенного в trumbowyg.js:1544
мой-notes.html
<link rel="import" href="../polymer/polymer-element.html">
<link rel="import" href="../bower_components/trumbowyg/trumbowyg.html">
<dom-module id="my-notes">
<template>
<link rel="stylesheet" href="../bower_components/trumbowyg/dist/ui/trumbowyg.min.css">
<firebase-auth user="{{user}}" signed-in="{{signedIn}}"></firebase-auth>
<div class="card">
<div id="trumbowygd">hello</div>
</div>
</template>
<script>
class MyNotes extends Polymer.Element {
static get is() { return 'my-notes'; }
static get properties() {
return {
user: {
type: Object,
observer: '_shownotearea'
},
};
}
_shownotearea(){
var myFineElement = this.$.trumbowygd;
myFineElement.innerHTML="hello nice meeting you";
$(myFineElement).trumbowyg({});
}
</script>
</dom-module>
trumbowyg.html
<script src="../jquery/dist/jquery.min.js"></script>
<script src="dist/trumbowyg.js"></script>
Это не похоже на работу плагинов jQuery и элементов Polymer
1 ответ
Короткий ответ: этот плагин, вероятно, не будет работать с родным Shadow DOM.
Вероятно, trumbowyg пытается запросить документ, чтобы найти какой-то элемент. Shadow DOM создает инкапсуляцию разметки, поэтому вы не можете использовать $()
или же document.querySelector
искать вещи внутри теневых корней. По этой причине я рекомендую не использовать плагины jQuery внутри Shadow DOM.