如何在视图中使用{{#each something}},其中"某些东西"是从数据库来的

时间:2017-03-14 07:53:57

标签: meteor handlebars.js

其实我是流星的新手。我想在我的视图中使用{{#each something}}进行操作,而无需操纵数据库。有没有像我这样对待它的数组。实际上它返回了元素列表。

<select name="field">
  <option value="">Lists</option>
  {{#each something}}
    <option value="{{_id}}">{{name}}</option>
  {{/each}}
</select>

我只想在&#34;选项中展示所有元素&#34;除了最后一个元素。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果你想在除了最后一件事之外的“东西”中显示所有东西,你可以在Blaze中使用@index来检测你何时结束。我正在使用each / in结构,因为我觉得它更容易阅读。

<select name="field">
    <option value="">Lists</option>
    {{#each thing in something}}
        {{#if showThing @index}}
            <option value="{{thing._id}}">{{thing.name}}</option>
        {{/if}}
    {{/each}}
</select>
对于JS,我正在假设你如何得到你的数据,但帮助者会看起来像这样:

Template.Foo.helpers({
    something() {
        return Somethings.find({});
    },

    showThing(index) {
        let somethingsCount = Somethings.find({}).count();

        return (index != (somethingsCount - 1));
    }
});