如何使用像PHP库中的加载器加载Mustache模板/部分?

时间:2014-01-01 16:50:54

标签: javascript php mustache

Mustache模板引擎的PHP版本允许您为模板和部分定义自定义加载器。

我想用它来为我的模板创建命名空间,例如:{{>Post.article}}

使用自定义加载器在PHP中很容易实现,但是当我使用Jache版本的Mustache时,似乎没有任何类型的加载器支持。

我需要的是在Javascript中使用闭包回调来告诉Mustache它可以找到部分(如果可能的话还有模板,但是部分是当前的问题)。

目前,在渲染模板时,我必须向Mustache传递所有部分的列表。这是一个问题,因为代码不知道模板所依赖的部分内容。

1 个答案:

答案 0 :(得分:0)

/**
 * High-level method that is used to render the given `template` with
 * the given `view`.
 *
 * The optional `partials` argument may be an object that contains the
 * names and templates of partials that are used in the template. It may
 * also be a function that is used to load partial templates on the fly
 * that takes a single argument: the name of the partial.
 */
Writer.prototype.render = function (template, view, partials) {
  var tokens = this.parse(template);
  var context = (view instanceof Context) ? view : new Context(view);
  return this.renderTokens(tokens, context, partials, template);
};

显然此功能已受支持。 partials参数可以是一个函数,这将完成我需要的工作。