Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在浏览器中使用NUNJUCK时,如何仅请求一次模板以使用不同的值进行迭代?_Javascript_Jquery_Ajax_Nunjucks - Fatal编程技术网

Javascript 在浏览器中使用NUNJUCK时,如何仅请求一次模板以使用不同的值进行迭代?

Javascript 在浏览器中使用NUNJUCK时,如何仅请求一次模板以使用不同的值进行迭代?,javascript,jquery,ajax,nunjucks,Javascript,Jquery,Ajax,Nunjucks,我在浏览器中多次渲染Nunjuck模板: $.ajax({ url: '/products', contentType: 'application/json', type: 'GET', success: function(response) { var $tableBody = $('#products-table-body'); response.products.forEach(function(product) { $tableBody.ap

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

$.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请求,每次只接收相同的模板,如果我只想使用相同的模板为每次迭代插入不同的值,这似乎是不必要的

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

多亏了这些帮助,我找到了答案

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 } )
      );
    });
  }
});

美好的但是从哪里获得
nunjucks
对象呢?这个代码是客户端对吗?是的。只需使用NPM进行安装,然后以各种方式将其包含在页面中: