编程语言
首页 > 编程语言> > javascript-如何从handlebars.js部分加载多个模板

javascript-如何从handlebars.js部分加载多个模板

作者:互联网

有没有一种简单的方法可以使用handlebars.js加载其中包含多个模板的部分文档,就像可以使用mustache.js和jQuery plugin from “jonnyreeves”加载它一样

例如:

$.Mustache.load('./templates/greetings.htm').done(function () {
    $('body').mustache('simple-hello', viewData);
});

解决方法:

Handlebars.js中,您需要使用Handlebars.registerPartial注册每个部分.

您可以这样做:

Java脚本

$(document).ready(function() {

  //Get template from server
  $.get("http://example.com/template.html").done(function(response) {
    var content = $($.parseHTML(response));

    //Compile main template
    var template = Handlebars.compile(content.filter("#test-template").html());

    //You need to register each partial
    Handlebars.registerPartial({
      foo: content.filter("#foo-partial").html(),
      bar: content.filter("#bar-partial").html()
    });

    //Your data
    var data = {
      "test": [{
        foo: "Foo",
        "foo_bar": "Foo-Bar",
        bar: "Bar",
        bar_foo: "Bar-Foo"
      }, {
        foo: "Foo2",
        "foo_bar": "Foo-Bar2",
        bar: "Bar2",
        bar_foo: "Bar-Foo2"
      }]
    };


    document.body.innerHTML = template(data);

  });

});

template.html

<!-- template.html -->
<script id="test-template" type="text/x-handlebars-template">
  {{#each test}}
    {{> foo}}
    {{> bar}}
  {{/each}}
</script>

<script id="foo-partial" type="text/x-handlebars-template">
  <div class="foo">
    <h2>{{foo}}</h2>
    <div class="foo_bar">{{foo_bar}}</div>
  </div>
</script>

<script id="bar-partial" type="text/x-handlebars-template">
  <div class="bar">
    <h2>{{bar}}</h2>
    <div class="bar_foo">{{bar_foo}}</div>
  </div>
</script>

标签:handlebars-js,mustache,javascript,jquery,rich-client-platform
来源: https://codeday.me/bug/20191119/2033644.html