你將如何去動態加載一個Web組件 - 例如,爲了響應一個URL路由變化?動態加載Web組件/ HTML導入?
我不會提前知道請求的組件,那麼您是否可以簡單地使用JavaScript來編寫HTML導入,然後將代碼添加到頁面中,或者是否存在這種影響?也許谷歌聚合物幫助?
你將如何去動態加載一個Web組件 - 例如,爲了響應一個URL路由變化?動態加載Web組件/ HTML導入?
我不會提前知道請求的組件,那麼您是否可以簡單地使用JavaScript來編寫HTML導入,然後將代碼添加到頁面中,或者是否存在這種影響?也許谷歌聚合物幫助?
只考慮自定義元素,您可以隨時撥打document.registerElement
。所以從這個角度來看,您可以使用任何衆所周知的方法動態加載腳本,並擁有動態的自定義元素。現在
,相對於HTML進口:
你能簡單地使用JavaScript編寫HTML進口,然後添加 代碼的頁面
是的,這是基本的想法。
最近版本的HTML Imports polyfill支持動態鏈接標籤。督察,你可以做
var link = document.createElement('link');
link.setAttribute('rel', 'import');
link.setAttribute('href', some_href);
link.onload = function() {
// do stuff with import content
};
document.body.appendChild(link);
此外,聚合物具有增強支持此功能,即命令式的API是這樣的:
Polymer.import([some_href], function() {
// called back when some_href is completely loaded, including
// external CSS from templates
});
第一個參數是一個數組,所以你可以要求多的HREFs 。
嗨我在聚合物谷歌組問了這個問題。 https://groups.google.com/forum/#!topic/polymer-dev/uarVrxBK7XU
,並針對本文
http://www.html5rocks.com/en/tutorials/webcomponents/customelements/#instantiating
這清楚您可以通過添加元素到DOM或編程實例在運行的元素。然而這似乎暗示你已經在運行時加載了html導入。我認爲我們都希望實現的是使用ajax加載html導入(使用額外的css和js包含),然後添加我們的元素。我將回到聚合物支持論壇,看看我能否在這裏得到答案。
你有沒有得到這個Ajax方式的任何更新? – FutuToad
對不起,這一個:但你有沒有進一步與此? – wittgenstein
如果您正在構建Chrome擴展程序/應用程序,則由於此問題需要使用前者而不是後者:https://github.com/Polymer/polymer/issues/810 –