作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 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 元素而不是我自己解析它们,那就太好了。
最佳答案
你可以将输出传送到 jQuery(如果这是一个选项),据我所知,它会解析 Handlebars 模板。不知道 jQuery 是否是一个选项,但类似:
var hbTemplate = Handlebars.compile(template);
var templateJqueryDom = $(hbTemplate(/* some json data */))
关于javascript - 如何让 Handlebars 模板返回 DOM 元素而不是 HTML 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15866014/
我是一名优秀的程序员,十分优秀!