клон полимерного элемента удалить шаблон полимерного элемента

мой полимерный элемент:

<ele-label id="newLabel" color="#000000" bgColor="#f1f1f1"  eleHeight="30" eleWidth="50" text="Name:" eleDisplay="inline-block"  elefloat="left"></ele-label>

но когда я клонирую этот внутренний HTML-элемент, он будет удален.

Может кто-нибудь помочь мне ?

<polymer-element name="ele-label" attributes="text color eleid eleWidth eleHeight fontSize bgColor paddingTop paddingBottom paddingLeft paddingRight eleDisplay elefloat" > <template> <div><label style="font-size:{{fontSize}}pt; color:{{color}} ;">{{text}}</label></div> </template></polymer-element>

person Nirav Alagiya    schedule 27.03.2014    source источник
comment
Что вы подразумеваете под внутренним HTML, который будет удален?   -  person Scimonster    schedule 27.03.2014
comment
шаблон моего полимерного компонента.   -  person Nirav Alagiya    schedule 27.03.2014
comment
отлично работает здесь jsfiddle.net/dSJAY   -  person Milind Anantwar    schedule 27.03.2014
comment
у вас нет текста внутри этого элемента, но вы говорите, что html будет удален .... что это?   -  person Bhojendra Rauniyar    schedule 27.03.2014
comment
извините за объяснение Que, но это мой настраиваемый элемент {{размер шрифта}} pt; color:{{color}} ;›{{text}}‹/label›‹/div› ‹/template›   -  person Nirav Alagiya    schedule 27.03.2014
comment
Шаблон находится в теневой DOM, а не в основной DOM.   -  person Scimonster    schedule 27.03.2014
comment
мой div с меткой будет удален, когда я клонирую этот пользовательский элемент.   -  person Nirav Alagiya    schedule 27.03.2014
comment
jsfiddle.net/4VTEk/1 Это работает, но только с JQuery 2.1.0 или новее.   -  person Scott Miles    schedule 28.03.2014


Ответы (2)


наконец получил решение

polylabel1: идентификатор моего div в боковом шаблоне полимерного элемента.

 Polymer('ele-label', {
 ready: function()
        {
            this.innerHTML=this.$.polylabel1.outerHTML;
        }
 attributeChanged: function()
        {
            this.innerHTML=this.$.polylabel1.outerHTML;
        }
}
person Nirav Alagiya    schedule 31.03.2014

При использовании тега <template> в Polymer создается теневой DOM, который не является частью основного DOM. Вы не увидите элементов в самом DOM, потому что его там нет. Взгляните на статью, на которую я дал ссылку, чтобы узнать больше.

EDIT: похоже, что jQuery не клонирует тень элемента. Попробуйте использовать .clone(true) для клонирования связанных данных.

person Scimonster    schedule 27.03.2014
comment
спасибо за ответ, но пользовательский элемент не отображается после клонирования. - person Nirav Alagiya; 27.03.2014
comment
Что здесь означает клон? - person Scimonster; 27.03.2014
comment
клон означает копию элемента - person Nirav Alagiya; 27.03.2014
comment
var $label = $('#newLabel').clone() - person Nirav Alagiya; 27.03.2014
comment
Извините, я не думаю, что смогу помочь дальше. Я только изучаю полимер. - person Scimonster; 27.03.2014