通过页面模板 Meteor 进行集合数组操作?

Collection array Manipulation through Page Templates Meteor?

我现在有什么。我有一个名为节点的集合。

Nodes = new Mongo.Collection('nodes');

我正确地发布和订阅了这个集合,所以这不是问题 我插入一些信息进行测试,因为这些将是气象站前的信息。

if(Nodes.find().count() === 0) {
    Nodes.insert({
        name: "OSU Node 1",
        humidity: [1,2,3,4,5,6,7,8,9,10]
    });
    Nodes.insert({
        name: "Storm Node 1",
        humidity: [11,22,33,44,55,66,77,88,99,10]
    });
}

现在我有一个显示这些节点的侧边栏,并加载一个 NodePage 来显示我选择的节点的图形数据。

<div class="nodes">
    {{#each nodes}}
        <li>
            <a href="{{pathFor 'NodePage'}}">
                {{name}}
            </a>
        </li>
    {{/each}}
</div>

HTML 然后 js 只是通用的

Template.sidebar.helpers({
nodes: function(){
    return Nodes.find();
}});

这有效 在我的路由器中,它显示了所选节点的 _id

Router.route('/:_id', {
   name: 'NodePage'
});

该页面当前只有一个 link 到 {{> graph}} 页面。因为还有一个用于gps。但这是真正的问题。在插入中我有一个数组。我只想显示所选节点的数组。我在页面上有 _id 但似乎无法获得单个节点。我已经得到了两个节点和它们的数组。 我有 name="graph" 页的 HTML

{{#each humid}}
    <ul>{{name}}
        {{#each humidity}}
            <a>{{this}}</a>
        {{/each}}
    </ul>
{{/each}}

而 JS 只是

Template.graph.helpers({
    humid : function(){
        return Nodes.find();
    }
});

这行得通,但给了我集合中的两个节点和每个节点的两个数组。

我的目标是能够加载页面。仅显示该节点湿度数据的图表。不是集合中的其他节点。我在很多论坛和很多同事问过这个问题,没有人能回答这个问题。 链接到网站和 Github 代码。 My website for this code 网站 link Go to echo-project-work Github link

这里有一些示例代码,用于获取单个节点的湿度数组,假设它出现在 Iron Router 的参数中:

Template.graph.helpers({
  humid: function() {
    if( Router.current().params._id ) {
      let node = Nodes.findOne({ _id: Router.current().params._id });
      if( node ) {
        return node.humidity;
      }
    }
  }
});

希望对您有所帮助!您应该能够修改您的模板以从那里获得您想要的内容。