我想知道如何在通過jQuery或虛擬DOM創建後修改Polymer 1.0標籤。聚合物1.0和外部DOM操作庫
我想用Mithril.js的Polymer 1.0。聚合物0.5.5具有Shadow DOM,其標籤字面和內部結構(在Chrome的檢查器上)幾乎相同。但1.0使用陰暗的DOM,它作爲HTML模板工作。
來源:
<paper-button role="button" tabindex="0">hello world</paper-button>
聚合物1.0檢查員結果:在檢查員
<paper-element>hello world</paper-element>
聚合物0.5.5結果
<paper-button role="button" tabindex="0" aria-disabled="false" class="x-scope paper-button-0">
<paper-ripple class="style-scope paper-button">
<div id="background" class="style-scope paper-ripple"></div>
<div id="waves" class="style-scope paper-ripple"></div>
</paper-ripple>
<paper-material animated="" class="content style-scope paper-button x-scope paper-material-0" elevation="0">
hello world
</paper-material>
</paper-button>
例如,當執行命令的jQuery這樣的:
$("paper-element").text("new label");
它與0.5.5(它顯示正確的標籤),但打破1.0(內部標籤已成爲螞蟻變成只是標籤)。這種新行爲不適合通過其他DOM操作庫操作Polymer的自定義標籤(首先,當我玩Mithril.js時,我遇到了這個問題)。我無法找到任何API來重新初始化內部標籤。
有沒有什麼好的解決方案在創建後修改Polymer 1.0標籤以支持虛擬DOM或jQuery?
更新(2015年6月3日)
我發現溶液從Polymer document。聚合物1.0可以添加以下代碼段後祕虛擬DOM工作:
<script>
window.Polymer = window.Polymer || {};
window.Polymer.dom = 'shadow';
</script>
聚合物使用陰影DOM而不是默認黑幕DOM通過此設置開始。它與Polymer 0.5.5和JavaScript DOM API友好相同。感謝你們!
將聚合物的dom設置爲「陰影」並不能解決在更新陰影元素並將其更改爲DOM元素時將得到的重繪問題。 Shadow DOM和Mithril不能很好地協同工作,我想這個數字對於所有虛擬DOM庫都很重要。 –