在浏览器中使用 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 } )
);
});
}
});
我在浏览器中多次渲染 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 } )
);
});
}
});