集合数组 通过页面模板流星进行操作

Collection array Manipulation through Page Templates Meteor?

本文关键字:流星 操作 数组 集合      更新时间:2023-09-26

我目前拥有的。我有一个名为节点的集合。

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'
});

此页面目前只有指向{{> 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 代码。我的网站为此代码网站链接转到回显项目工作 Github 链接

下面是一些示例代码来获取单个节点的湿度数组,因为它位于 Iron 路由器上的参数中:

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

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