我把這個發佈到Meteor-Talk Google Group,但我認爲這是一個晦澀難懂的問題,它需要一個信號提升。XML3D,document.createElementNS和Meteor
我試圖創建一個插件,讓您將HTML樣式的元素添加到HTML文檔中,儘可能使用HTML5,以便與XML3D一起使用。我認爲使用Blaze模板和XML3D呈現3D內容是非常棒的。
我需要使用document.createElementNS方法向DOM中添加元素,以便將它們添加到SVG以外的替代名稱空間下,以便試驗替代規範。
不幸的是,流星僅支持SVG的命名空間的方法,按照這樣的代碼: https://github.com/meteor/meteor/blob/a81fbf483efa4f40ea2d382f0c7275d408536e96/packages/blaze/materializer.js#L41
我已經考慮了兩種不同的方法來這樣做。我既可以創建一個模板塊幫手,一個看起來像這樣:
在Spacebars:
{{#xml ns="http://www.xml3d.org/2009/xml3d"}}
<xml3d>...</xml3d>
在玉:
+xml(ns='http://www.xml3d.org/2009/xml3d')
xml3d ...
這一塊是很簡單的,但我怎麼能交付Blaze--最終,DOM--呈現的內容,被動地使用正確的命名空間?或者,我可以嘗試擴展Blaze來支持替代名稱空間,也許通過使用一個包。我不確定如何做到這一點,因爲我不認爲一個套件可以擴展Blaze。我確實看到BlazeTools,也許這可能有幫助?關於做什麼的文檔相當稀少,代碼實際做的並不是很明顯。
或者也許這兩種方法的一些組合,例如使用塊幫助器發信號給Blaze XML命名空間以呈現塊幫助器的內容。
想法?