Javascript 如何将渲染的把手模板加载到div中?
我正在尝试使用动态构建模板并将其添加到布局中。我通常这样做:Javascript 如何将渲染的把手模板加载到div中?,javascript,jquery,html,handlebars.js,template-engine,Javascript,Jquery,Html,Handlebars.js,Template Engine,我正在尝试使用动态构建模板并将其添加到布局中。我通常这样做: $('#pageTabContent').append('\ <div class="tab-pane" id="'+ticketId+'">\ And a whole lot more HTML here.. </div>'); 该警报显示正确呈现的html,包括ticketId,但它只是拒绝附加到#pageTabContent
$('#pageTabContent').append('\
<div class="tab-pane" id="'+ticketId+'">\
And a whole lot more HTML here..
</div>');
该警报显示正确呈现的html,包括ticketId,但它只是拒绝附加到#pageTabContent。在这里我有点迷路了。我尝试了各种变体,但似乎无法将其附加到#pageTabContent div
有人知道我做错了什么吗?欢迎所有提示
[编辑]
它试图附加的值,我在警报中看到的值是:
<div class="tab-pane" id="99">
This is the content from the separate file!
</div>
这是单独文件中的内容!
试试这个
$.get('/templates/tab_contents.html').then(function(src) {
var renderedTemplate = Handlebars.compile(src)({ticketId: 99});
alert(renderedTemplate);
$('#pageTabContent').append(renderedTemplate.ToString());
});
renderedTemplate可以是字符串以外的另一个对象。可能需要将其字符串化以使其正确附加?我当然也尝试过,但不幸的是,这也不起作用。因为这确实是更符合逻辑的尝试,所以我只是编辑了我的初始问题,使其再次类似。您还有其他建议吗?@kramer65您能发布警报中显示的值吗?这样我就可以看到要添加的内容了?只需添加一个console.log(renderedTemplate);因此,您可以从控制台窗口复制!我把它添加到我的初始问题中。我想说这很简单。有什么想法吗?@kramer65,你能不能打断附加和检查呈现模板的类型。$().append可能将其视为另一个对象,而不是字符串。可能需要。toString()吗?我已经计划在下午给你写一个答案(现在就在这里)。今天我做了一个简单的检查(renderedTemplate===stringTemplate),突然一切都正常了。我真的不知道为什么以前没有。这可能是某种缓存问题(我想我已经排除了),也可能只是我犯了一个非常愚蠢的错误(但我真的不知道我是如何解决的)。所以,虽然问题解决了,但我真的不知道问题出在哪里。但我要感谢你的帮助和精力。像你这样的人让世界变得更美好!:)干杯
$.get('/templates/tab_contents.html').then(function(src) {
var renderedTemplate = Handlebars.compile(src)({ticketId: 99});
alert(renderedTemplate);
$('#pageTabContent').append(renderedTemplate.ToString());
});