Backbone如何调用外部Handlebars模板文件~
因为我现在是直接把Handlebars
写在HTML页面中的,想问一下,如何将Handlebars
模板文件做为一单独的文件引用使用呢?
Handlebars
<script id="template" type="text/x-handlebars-template">
{{#each this}}
<h3>{{ title }}</h3>
<div class="sub">
{{#each sub}}
<dl class="items">
<dt>{{ title }}</dt>
{{#each subtitle}}
<dd>
<a href="{{ url }}">{{ title }}</a>
</dd>
{{/each}}
</dl>
{{/each}}
</div>
{{/each}}
</script>
HTML:
<div class="nav" id="nav"></div>
<script>
var NavView = Backbone.View.extend({
template: Handlebars.compile( $('#template').html()),
initialize: function() {
this.render();
},
render: function() {
var _t = this;
$.getJSON('config/menu.json').done(function(data) {
_t.$el.html(_t.template(data));
});
}
});
var AppRouter = Backbone.Router.extend({
routes: {
'': 'navRoute',
'nav': 'navRoute'
},
navRoute: function() {
var homeView = new NavView();
$('#nav').html(homeView.el);
}
});
var appRouter = new AppRouter();
Backbone.history.start();
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我们用的是requireJS来管理这些文件。require text可以将文件以文本的形式加载进来。
在之前的一个项目里https://github.com/phodal/moqi.mobi是这样用的,我们之前用的是Mustache,但是都是一样的:
以上面的代码为例,我们将mustache的模板,即/templates/basic.html以文本的形式加载进来,然后to_html
text!/templates/basic.html' 会跨域