在浏览器中使用 Nunjucks,我如何只请求一次模板来迭代使用不同的值?

Using Nunjucks in the browser, how do I only request a template once to iterate on using different values?

我在浏览器中多次渲染 Nunjucks 模板:

$.ajax({
  url: '/products',
  contentType: 'application/json',
  type: 'GET',
  success: function(response) {
    var $tableBody = $('#products-table-body');

    response.products.forEach(function(product) {
      $tableBody.append(
        nunjucks.render( '_item-row.html', { id: product.id, name: product.name } )
      );
    });
  }
});

这是为每次迭代创建一个 HTTP 请求,每次只接收相同的模板,如果我只想使用相同的模板为每次迭代插入不同的值,这似乎是不必要的。

我如何才能只请求一次模板,然后使用该单个模板请求在每次迭代中填写值?

感谢Nunjucks documentation的帮助,我搞定了。

var env = new nunjucks.Environment(new nunjucks.WebLoader('../views'));

$.ajax({
  url: '/products',
  contentType: 'application/json',
  type: 'GET',
  success: function(response) {
    var $tableBody = $('#products-table-body');

    var template = env.getTemplate('_item-row.html');

    response.products.forEach(function(product) {
      $tableBody.append(
        nunjucks.render( template, { id: product.id, name: product.name } )
      );
    });
  }
});