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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
在集合文档(Meteor)中将数组元素作为单个值进行迭代_Meteor_Meteor Blaze - Fatal编程技术网

在集合文档(Meteor)中将数组元素作为单个值进行迭代

在集合文档(Meteor)中将数组元素作为单个值进行迭代,meteor,meteor-blaze,Meteor,Meteor Blaze,我正在尝试创建一个在线聊天列表。每当一个人搬进一个房间,他的昵称就会被推入房间的数组中,当他离开时,昵称又会被拉出。到目前为止,这一切都很好。但是,在实际列表中显示数组让我感到困惑 我需要将这些名称分开,以便将它们放入锚标记中,因为这些名称是url参数 文件室文档如下所示: { "_id": "crsEES5d22uYJiqDZ", "name": "Room", "roomdesc": " ", "inRoom": [name1, name2, name3], "creat

我正在尝试创建一个在线聊天列表。每当一个人搬进一个房间,他的昵称就会被推入房间的数组中,当他离开时,昵称又会被拉出。到目前为止,这一切都很好。但是,在实际列表中显示数组让我感到困惑

我需要将这些名称分开,以便将它们放入锚标记中,因为这些名称是url参数

文件室文档如下所示:

{
  "_id": "crsEES5d22uYJiqDZ",
  "name": "Room",
  "roomdesc": " ",
  "inRoom": [name1, name2, name3],
  "createdAt": "2019-06-08T12:39:51.382Z",
  "owner": "Kuroki"
}
我有一个助手来获取数组。我使用getParam获取房间的名称,以便找到合适的房间

Template.onlineliste.helpers({
  roomData() {
    var name = FlowRouter.getParam('name');
    return Channels.find({name:name}, {sort: {createdAt: 1}})
  },
});
然后我尝试迭代,这当然会将数组显示为一个整体,而不是将每个名称都显示为单个值

<template name="onlineliste">
    {{#each roomData}}
    {{inRoom}} 
    {{/each}}
  </template>


{{{#每个房间数据}
{{inRoom}}
{{/每个}}
有人能告诉我如何迭代数组的单个值,使它们像

  • 名字1
  • 名称2
  • 名字3
而不是名称1、名称2、名称3

谢谢你的帮助

有人能告诉我如何迭代数组的单个值,使它们显示为

房间中的字段
本身就是一个数组,因此每个
都需要第二个


{{#roomData中的每个房间}
    {{{#房间里的每个名字。inRoom}
  • {{name}}
  • {{/每个}}
{{/每个}}
如果只显示一个房间,您甚至可以更改代码以返回当前的单人房间:

Template.onlineliste.helpers({
roomData(){
var name=FlowRouter.getParam('name');
返回Channels.findOne({name:name}})
},
});
它只按名称返回一个文件室文档,不需要迭代。然后,您可以通过以下方式访问它:


{{#使用roomData}
    {{{#这个}里的每个名字}
  • {{name}}
  • {{/每个}}
{{/与}}
有人能告诉我如何迭代数组的单个值,使它们显示为

房间中的字段
本身就是一个数组,因此每个
都需要第二个


{{#roomData中的每个房间}
    {{{#房间里的每个名字。inRoom}
  • {{name}}
  • {{/每个}}
{{/每个}}
如果只显示一个房间,您甚至可以更改代码以返回当前的单人房间:

Template.onlineliste.helpers({
roomData(){
var name=FlowRouter.getParam('name');
返回Channels.findOne({name:name}})
},
});
它只按名称返回一个文件室文档,不需要迭代。然后,您可以通过以下方式访问它:


{{#使用roomData}
    {{{#这个}里的每个名字}
  • {{name}}
  • {{/每个}}
{{/与}}
我认为这对我的问题不起作用的原因是{{name}}没有引用数组的值。我用find和findOne进行了尝试。您是否
console.log(Channels.findOne({name:name}}))
验证它是否返回了任何内容?是的,
name
值是正确的-这是一个相当于
for(let element in iterable){…}
的blaze,其中值
name
被分配给迭代的当前元素的上下文。
Uncaught ReferenceError:Channels没有定义在:1:1
它说,当我尝试这个console.log时。但是这很奇怪,因为我已经可以通过执行{{roomData.inRoom}}来返回整个数组了。但是,如果我使用findOne选项console.log以
{{{each}}响应,那么当前只接受数组、游标或假值
,这就是为什么您需要在
findOne
上使用
with
,就像我发布的上一个代码片段一样。请试着用这个,我用过了。这是同一个错误:
error:{{{#each}}当前只接受数组、游标或假值。
I甚至复制了代码段。我甚至在空白页上尝试,看看是否有其他代码在干扰,但结果相同。如果你非常确定这是解决问题的方法,我怀疑问题一定出在其他地方。我会努力找到它。谢谢您的时间。我想这对我的问题不起作用的原因是{{name}}没有引用数组的值。我用find和findOne进行了尝试。您是否
console.log(Channels.findOne({name:name}}))
验证它是否返回了任何内容?是的,
name
值是正确的-这是一个相当于
for(let element in iterable){…}
的blaze,其中值
name
被分配给迭代的当前元素的上下文。
Uncaught ReferenceError:Channels没有定义在:1:1
它说,当我尝试这个console.log时。但是这很奇怪,因为我已经可以通过执行{{roomData.inRoom}}来返回整个数组了。但是,如果我使用findOne选项console.log以
{{{each}}响应,那么当前只接受数组、游标或假值
,这就是为什么您需要在
findOne
上使用
with
,就像我发布的上一个代码片段一样。请试着用这个,我用过了。这是同一个错误:
error:{{{#each}}当前只接受数组、游标或假值。
I甚至复制了代码段。我甚至在空白页上尝试,看看是否有其他代码在干扰,但结果相同。如果你非常确定这是解决问题的方法,我怀疑问题一定出在其他地方。我会努力找到它。谢谢你抽出时间。