我在KnockoutJS中做了一些高級工作,從而在KO過程之外生成了一些HTML,將綁定應用到它們,然後將它們插入到我的頁面中。如何暫時放置任意DOM節點
問題是住房新的HTML。我的HTML是一對錶行,當我做
var div = document.createElement('div');
div.innerHTML = template(viewModel);
股利剔除掉所有的表的內容(我tr
和td
標籤),大概是因爲div的不能包含錶行。
現在我的俗氣的解決方法如下:使用tbody。但是我想要一些更廣義的東西。我以爲使用文檔片段,但似乎沒有設置的innerHTML屬性。
處理這個問題的首選方法是什麼?
var div = document.createElement('tbody');
div.innerHTML = template(viewModel);
ko.applyBindingsToDescendants(bindingContext, div);
$(element).after($(div).contents());
作爲一種解決方法,您可以獲取父節點的類型,創建一個空的分離的新節點來存放您的內容,然後從t這裏。但最好弄清楚爲什麼你的內容被剝離開始。 – Nit
@Nit - 這實際上不是一個壞主意。你能把它作爲答案發布嗎? –
看起來像取決於你如何設置HTML [小提琴](http://jsfiddle.net/origineil/B7Kge/) – Origineil