[英]Backbone.js - how to include an external HTML fragment
我已经在文件系统中预渲染了HTML片段。 是否可以将HTML片段加载到ribs.js中 ? 我正在寻找类似于Angular.js的 ng-include的东西
例如,在我的文件系统(frag.html)中
<h1>I'm a fragment</h1>
应在给定的占位符位置注入模板
<div id="ph">
<!-- INJECTED -->
<h1>I'm a fragment</h1>
</div>
假设我们有这个占位符:
<div id="ph"></div>
以及frag.html文件中的以下HTML:
<div>
<h1>I am</h1>
<span>an HTML fragment</span>
</div>
让我们用特殊的render
方法定义我们的自定义PrerenderedView
,并在其中load
jQuery函数:
window.PrerenderedView = Backbone.View.extend({
render: function() {
this.$el.load(this.options.ajax_template_path, _.bind(this.onRender, this));
return this;
},
onRender: function() {
// do some stuff here, for example
var h1 = this.$('h1');
var text = this.model.get('some_value');
setTimeout(function() {
h1.text(text);
}, 2000);
}
});
在实例化的时刻PrerenderedView
我们应该通过一个选项ajax_template_path
(这是在我们的例子“frag.html”)。
$(function() {
new window.PrerenderedView({
el: $('#ph'),
model: new Backbone.Model({some_value: 'It was'}),
ajax_template_path: 'frag.html'
}).render();
});
而且,当然,如果我们要在没有服务器的情况下工作,我们也不会忘记相同起源策略 。 例如,我们可以使用“ --allow-file-access-from-files”标志启动chrome。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.