我有一個集合與字段group1
,group2
和group3
這些都是數字。流星中的拆分組
我可以使用收集與
Template.tplName.helpers({
rows: function() {
return Rows.find({});
},
});
和
<template name="tplName">
{{#each rows}}
{{group1}}, {{group2}}, {{group3}}
{{/each}}
</template>
但不是在一頁上打印的所有行,我要他們在多個頁面劃分。
在第一頁上,我想打印所有唯一group1
值的列表。如果我點擊一個group1
號碼,我將進入另一頁,其中包含所有值的列表,其中包含我剛剛點擊過的group1
號碼。當點擊group2
號碼時,我將進入一個新頁面,其中包含所有group3
值的列表,其中包含我點擊過的group1
號碼和group2
號碼。
如果我的數據集是
group1, group2, group3, amount
=======================
1, 1, 1, 200
1, 1, 2, 300
1, 2, 1, 250
1, 2, 2, 220
1, 2, 3, 200
2, 1, 1, 305
2, 1, 1, 290
我想的第一頁列出
<li><a href="?">1</a></li>
<li><a href="?">2</a></li>
如果我在這第一頁點擊1,我想接下來的第二頁,列出
<li><a href="?">1</a></li>
<li><a href="?">2</a></li>
如果我在這第二頁上點擊2,我想要下一個第三頁列表
<li><a href="?">1</a></li>
<li><a href="?">2</a></li>
<li><a href="?">3</a></li>
我希望這是可以理解我想要做:-)
我想我必須檢索整個集合,然後篩選出來。
var rows = Rows.find().fetch(); // fetch all rows
var group1Numbers = _.pluck(rows, "group1"); // get all group1 numbers
var group1NumbersUnique _.uniq(group1Numbers); // get all unique group1 numbers
給我獨特的group1
數字。現在我需要一些方法告訴路由器(或其他),我已經點擊了group1
號碼中的一個號碼,並且在下一個具有rows = Rows.find({group1: ?})
的路線上,而不是顯示所有的行。
但是,如果我使用_.pluck()
我得到的組號碼列表 - 這可能是最簡單的方法來刪除重複,但我也需要總和。
我想我可以創建一個模板
<template name="groupList">
{{#each groups}}
<p><a href="?">{{name}}</a> (amount: {{amount}})</p>
{{/each}}
</template>
和路線
this.route('groupListFirst', {
path: '/groups',
template: 'groupList',
waitOn: function() {
return [
subs.subscribe('groups'),
]
},
data: function() {
var group1List = [
{
name: "1",
amount: 200 + 300 + 250 + 220 + 200,
},
{
name: "2",
budget: 305 + 290,
},
];
return {
groups: group1List,
}
},
});
和新途徑活躍我已經點擊了1組鏈接之一後,顯示所有屬於該組中2物體到點擊的group1鏈接。 因此,如果用戶點擊「1」的第1個鏈路中,它可能像
this.route('groupListSecond', {
path: '/groups',
template: 'groupList',
waitOn: function() {
return [
subs.subscribe('groups'),
]
},
data: function() {
var group2List = [
{
name: "1",
amount: 200 + 300,
},
{
name: "2",
budget: 250 + 220 + 200,
},
];
return {
groups: group2List,
}
},
});
,如果該組中2鏈路中用戶進一步點擊1,這是
this.route('groupListThird', {
path: '/groups',
template: 'groupList',
waitOn: function() {
return [
subs.subscribe('groups'),
]
},
data: function() {
var group3List = [
{
name: "1",
amount: 200,
},
];
return {
groups: group3List,
}
},
});
這些路線手動創建,因爲我不知道如何自動執行此操作,並註冊用戶單擊的鏈接,只顯示與此組相關的對象。
我想這應該從集合中完成,每個文檔都有多個組編號,但是如果我不能用這個結構來完成,我將不得不將每個組分割成不同的集合。
我無法理解您的數據以及如何將每條記錄分解成頁面(無,1,2)? group1對group3有什麼意義? –
而不是將每個組存儲到每條記錄時,爲什麼不將這些值存儲爲group1,group2,group3的三條記錄(組):{group:1,values:[1,2 ]},{group:2,values:[1,2]},{group:3,values:[1,2,3]} –
對不起,如果問題不清楚。我有一個集合的集合。但我沒有列出所有的組,而是創建了一些映射。所以我在組合集中添加了一些字段來表示/模仿一些關卡。 – Jamgreen