Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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 如何访问阵列中的Meteor用户属性?_Javascript_Meteor - Fatal编程技术网

Javascript 如何访问阵列中的Meteor用户属性?

Javascript 如何访问阵列中的Meteor用户属性?,javascript,meteor,Javascript,Meteor,我正在努力学习流星,我遇到了一些障碍。我有两个嵌套模板来显示我的应用程序中的所有用户信息: 用户\u list.html: <template name='usersList'> <div class='users'> {{#each user}} {{> userItem}} {{/each}} </div> </template> 这适用于顶级属性,但如果我尝试通过更改user_item.html中的

我正在努力学习流星,我遇到了一些障碍。我有两个嵌套模板来显示我的应用程序中的所有用户信息:

用户\u list.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>