繁体   English   中英

Backbone.js-如何包括外部HTML片段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM