如何在流星模板中显示序列号

Posted

技术标签:

【中文标题】如何在流星模板中显示序列号【英文标题】:How to display serial number in meteor template 【发布时间】:2014-04-01 07:00:27 【问题描述】:

我需要在我的流星应用程序中显示项目列表。 我的模板代码就像

 Template.templatename.vname = function()
    return Groups.find();
 


#each vname
// Need to display serial number here.
 field1 
/each

如何在这个循环中显示序列号?

【问题讨论】:

什么是list?一个序列号(字符串)数组? 它是一个名称数组。我需要在每个名称前显示序列号。 如何存储名称对应的序列号?如果没有更多代码,这个问题根本不清楚。 你是指列表中的索引还是唯一的字符串来标识数据库条目? 【参考方案1】:

我找到了解决办法

Template.templatename.vname = function()
   var gps_crs = Groups.find();
   var gps = gps_crs.fetch();
   for (var i = 0; i < gps.length; i++) 
        gps[i].index = i+1;
    
    return gps;
 


#each vname
 index 
 field1 
/each

序列号将显示在 index

【讨论】:

如果您更改组的排序顺序,这将中断。为什么不直接使用 _id 而不是 index【参考方案2】:

代码

Template.templatename.vname = function()
    return Groups.find().fetch().map(function (d, i) 
        d._index = i + 1;
        return d;
    );

模板

#each vname
  _index
   field1 
/each

【讨论】:

【参考方案3】:

如果我们使用

#each vname
@index 
/each 

然后我们会得到从 0,1,2 开始的一串数字......从 1,2,3 开始......然后我们可以使用 Handlebar 数学助手并使用下面的代码......

#each vname
add @index 1
/each

或者我们自己编写一个迭代器辅助函数。

【讨论】:

以上是关于如何在流星模板中显示序列号的主要内容,如果未能解决你的问题,请参考以下文章

如何在流星运行时编译新模板?

如何在流星模板中创建全局函数

如何在流星模板上使用 if 条件?

如何将主干视图连接到流星车把模板?

您将如何将订阅管理器与流星的模板订阅一起使用?

流星在模板空格键中显示数组的第一个元素