我在我的 Backbone.js 应用程序中使用 Handlebars。我想知道如何让 Handlebars 模板返回 DOM 元素而不是字符串?
这就是我的意思:
define([
'underscore',
'backbone',
'handlebars',
'text!templates/myTemplate.hbs'
], function(_, Backbone, handlebars, template) {
...
...
render: function() {
// This returns me a string of HTML, I would like to be able
// to get actual DOM elements so that I can use appendChild
// and insertBefore etc.
var hbTemplate = Handlebars.compile(template);
var templateString = hbTemplate(/* some json data */);
},
...
...
我曾尝试使用 DOMParser 将 HTML 字符串解析为 DOM 元素,但由于 Handlebars 模板中有很多额外的空格,会出现语法错误。但是,如果 Handlebars 能够以某种方式返回 DOM 元素而不是我自己解析它们,那就太好了。