gpt4 book ai didi

javascript - 在 Blaze 模板中访问对象的属性名称

转载 作者:太空狗 更新时间:2023-10-29 16:00:13 26 4
gpt4 key购买 nike

假设我有一个看起来像这样的助手:

Template.profile.helpers({
info: {
Name: 'Bob Dinkleberg',
Age: 45,
Location: 'Earth, Milky Way'
}
});

我想把这个信息放在 <ul> 中.这是一些伪代码:

<template name="profile>
<ul>
{{#each}}
<li> {{key}}: {{property}} </li>
{{/each}}
</ul>
</template>

如果这是微不足道的,请原谅我,我是 Meteor 和 Blaze 的新手,而且我一直无法在线找到解决方案。

最佳答案

如果你想按照你的要求遍历一个对象的属性和值,你可以通过以下方式实现:

Template.content.onCreated(function() {
this.properties = new ReactiveVar({
Name: 'Bob Dinkleberg',
Age: 45,
Location: 'Earth, Milky Way'
});
});

Template.content.helpers({
keys: function () {
return Object.keys(Template.instance().properties.get());
},
key_value_pair: function() {
return { key: this, value: Template.instance().properties.get()[this] };
}
});

和这个模板

<body>
<h1>Property Loop</h1>
<ul>
{{> content}}
</ul>
</body>

<template name="content">
{{#each keys}}
{{> property key_value_pair }}
{{/each}}
</template>

<template name="property">
<li>{{key}}: {{value}}</li>
</template>

我为您准备了这个 MeteorPad,这是一个运行示例:

http://meteorpad.com/pad/24MGwbuMNCcXCC7EW/PropertyLoop

干杯,汤姆

P.S.:如果对象的值永远不会改变,则没有必要将对象创建为 ReactiveVar。但是通过将其作为 ReactiveVar 来执行,当对象内容发生变化时,表单也会被重新激活。

关于javascript - 在 Blaze 模板中访问对象的属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31220610/

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