通过页面模板 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;
}
}
}
});
希望对您有所帮助!您应该能够修改您的模板以从那里获得您想要的内容。
我现在有什么。我有一个名为节点的集合。
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;
}
}
}
});
希望对您有所帮助!您应该能够修改您的模板以从那里获得您想要的内容。