gpt4 book ai didi

javascript - Nunjucks 模板中的变量解构

转载 作者:行者123 更新时间:2023-12-03 03:41:22 28 4
gpt4 key购买 nike

当前变量在 for 循环中被称为属性:

{% id, item in items %}
<div>
{{ id }}
{{ item.foo }}
{{ item.bar }}
{{ item.baz }}
...

最好跳过 for 中的 item. 部分:

  ...
<div>
{{ id }}
{{ foo }}
{{ bar }}
{{ baz }}

与 ES6 解构类似:

for (const [id, {foo, bar, baz}] of Object.entries(items)) ...

是否可以将它们作为变量而不是 Nunjucks 模板中的 item 属性引用?

最佳答案

恕我直言,它的行为是危险的。 FooBar 可以覆盖传递给模板和 {% set Foo = ... %} 变量。

var nunjucks  = require('nunjucks');
var env = nunjucks.configure();

env.addGlobal('destruct', function(obj) {
for (var key in obj)
this.ctx[key] = obj[key];
})

var res = nunjucks.renderString(`
{% for id, item in items %}
{{destruct(item)}}
{{id}} - {{foo}} - {{bar}}
{% endfor %}
`,
{
items: {
A: {id: 10, foo: 'fooA', bar: 'barA'},
B: {id: 20, foo: 'fooB', bar: 'barB'}
}
}
);

console.log(res);

关于javascript - Nunjucks 模板中的变量解构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45606679/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com