JSRender:从转换器或自定义标签渲染另一个模板

时间:2019-07-19 00:23:51

标签: templates jsrender

我正在从后端服务请求中获取HTML内容,其中可能包含类似以下内容(非JSRender):

<div>{{comp:someComponentId}}</div>

或者我们可以通过以下方式接收它:

<div>{{comp someComponentId}}</div>

我想利用此语法在JSRender中使用转换器或标记将其有效地转换为:

<div>{{include tmpl="someComponentId"/}}</div>

标签/转换器是否进行渲染,或者是否可以迭代创建包含以使JSRender对其进行评估。我该如何实现?

1 个答案:

答案 0 :(得分:0)

这是您想要的吗?

<script id="myTmpl" type="text/x-jsrender">
  {{comp someid/}}
</script>

<script id="id1" type="text/x-jsrender">
  what {{:foo}}
</script>

<div id="page"></div>

<script>
  $.views.tags("comp", {
    render:  function(id) {
      return $("#"+id).render(this.tagCtx.view.data);
    }
  });

  var myTmpl = $.templates("#myTmpl"),
    data = { someid: "id1", foo: "FOO" },
    html = myTmpl(data);
  $("#page").html(html);
</script>