我正在寫一個使用handlebars.js的應用程序,但The example code on their website使用JQuery,以及許多其他在線資源。不過,我想簡單地使用vanilla js編譯和渲染一個句柄模板。編譯和渲染與香草的車把模板JS
這是HTML模板
<script id="entry-template" type="text/x-handlebars-template">
<div class="entry">
<h1>{{title}}</h1>
<div class="body">
{{body}}
</div>
</div>
</script>
的JS我對編譯如下,如回答表明這裏 Does Handlebars require jQuery
var source = document.getElementById('entry-template').innerHTML;
var template = Handlebars.compile(source);
了類似的問題。假設我的JSON存儲在一個名爲myData的變量中。
當談到渲染與jQuery的模板,你可以簡單地做
$('#data-section').append(template(myData));
但我想用香草JS所以我這樣做:
var compiledHTML = template(myData);
var dataContainer = document.getElementById('data-section');
dataContainer.appendChild(compiledHTML);
,但我得到的錯誤
Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.
如何獲得此功能?
完美的作品。這是否工作,因爲在幕後發生了一些類型轉換? – rjbultitude
@rjbultitude有點像https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML – Joseph