Javascript 如何访问阵列中的Meteor用户属性?
我正在努力学习流星,我遇到了一些障碍。我有两个嵌套模板来显示我的应用程序中的所有用户信息: 用户\u list.html:Javascript 如何访问阵列中的Meteor用户属性?,javascript,meteor,Javascript,Meteor,我正在努力学习流星,我遇到了一些障碍。我有两个嵌套模板来显示我的应用程序中的所有用户信息: 用户\u list.html: <template name='usersList'> <div class='users'> {{#each user}} {{> userItem}} {{/each}} </div> </template> 这适用于顶级属性,但如果我尝试通过更改user_item.html中的
<template name='usersList'>
<div class='users'>
{{#each user}}
{{> userItem}}
{{/each}}
</div>
</template>
这适用于顶级属性,但如果我尝试通过更改user_item.html中的上一行来显式访问电子邮件数组中0索引上的.address属性:
<template name='userItem'>
<div class='user'>
<div class='user-content'>
<h3>User:</h3>
<h4>Email: {{emails}}</h4>
<h5>ID: {{_id}}</h5>
...
</div>
</div>
</template>
<h4>Email: {{emails[0].address}}</h4>
你知道为什么流星不喜欢这个吗
另外,我一般认为我可能需要将emails数组的内容存储到一个变量中,并重复上面的相同模式,除了将emails_列表和emaile_项模板嵌套到user_项模板中。这似乎是可行的,但对于这个用例来说过于复杂
最终,我只是想学习并实现一种合理的模式,用于访问和显示集合中文档的嵌套属性。如果您有任何想法或指导,我们将不胜感激。这只是您的语法问题,请尝试以下方法:
<h4>Email : {{emails.[0].address}}</h4>
电子邮件:{{emails.[0]。地址}
您需要使用点语法访问电子邮件数组的第一个元素(键为“0”的属性)
您还可以使用此模式显示电子邮件列表:
(from userItem)
{{> emailsList}}
<template name="emailsList">
<ul>
{{#each emails}}
{{> emailItem}}
{{/each}}
</ul>
</template>
<template name="emailItem">
<li>Address : {{address}}</li>
</template>
(来自userItem)
{{>电子邮件列表}
{{{#每封邮件}
{{>emailItem}
{{/每个}}
地址:{{Address}
我不认为这是过于复杂(只是一对夫妇更多的模板),和流星这是非常容易做到的。
在合理的情况下,将模板分割成更多的子模板,这将简化并加速数据失效时的DOM重新呈现
此外,在助手中返回光标时,不需要使用fetch:每个块都经过优化,可以直接使用光标而不是数组。(只需重新提交一个修改过的项目而不是整个列表就足够了)。您可以查看Blaze的文档
对于模板中的show数组,必须像文档中所示那样编写,
在虚线帮助程序中,在数字索引周围使用括号,例如{currentUser.emails.[0].address},而不是{{currentUser.emails.0.address}
好{currentUser.emails.[0].地址}
错误{currentUser.emails.0.address} 维基
这在Meteor中有效,谢谢。但是,此代码在控制台中不起作用。我的javascript今天休息吗?我不明白我们为什么需要。在电子邮件数组的0索引处获取项的符号。这是因为空格键(Handlebar的Meteor实现)与JavaScript不同,您的语法对于JS是正确的,但是对于模板引擎是错误的。@walter链接到我的问题的来源。谢谢你的帮助
<h4>Email : {{emails.[0].address}}</h4>
(from userItem)
{{> emailsList}}
<template name="emailsList">
<ul>
{{#each emails}}
{{> emailItem}}
{{/each}}
</ul>
</template>
<template name="emailItem">
<li>Address : {{address}}</li>
</template>