【问题标题】:Meteor for each on template?每个模板上的流星?
【发布时间】:2026-02-09 00:50:01
【问题描述】:

在 jQuery 中我有以下内容:

var dis = $('.dis').children();
for (var i = 0; i <= dis.length; i++){
$(dis.find('.somediv')[i]).text(funk.list[i].api.response);}

我正在尝试更改我的代码格式以响应 Meteor。为此,我正在尝试像这样转换我的代码:

this.mete = new ReactiveVar();
var self = this;
self.mete[i].set('funk.list[i].api.response');

所有这一切的要点是,在我的 jQuery 代码中,我有一个 for-each 循环,需要反映在每个 div 周围的 [i] 标记中。

我的 HTML 是这样的:

<div class="dis"><div class="somediv"></div></div> <div class="dis"><div class="somediv"></div></div>

self.mete[i].set 不能做到这一点。我想知道该怎么做。另外,我知道,在 Meteor 中,HTML 看起来更像:

<div class="dis">{{mete}}</div>
<div class="dis">{{mete}}</div> 

【问题讨论】:

    标签: javascript meteor


    【解决方案1】:

    你可能想要这样的东西:

    Template.mytemplate.onCreated(function(){
        this.mete = new ReactiveVar();
        var self = this;
        self.mete.set(YourListHere); //assuming your list is an array of object like {api: {response: "some response"}} 
    });
    Template.mytemplate.helper({
       "myList": function() {
          return Template.instance().mete.get();
       }
    });
    

    在模板中:

    {{#each myList}}
    <div class="dis">{{this.api.response}}</div>
    {{/each}}
    

    【讨论】:

    • 唯一的问题是我的列表来自 JSON 数据,我必须在其中分配值 eg doing[0].it。我不清楚如何为此设置一个 for 循环。使用 {{#each}} 并不能帮助我在我认为没有的 getJSON 调用中选择 [i] 值。
    • 您能分享一个数据示例和您期望的结果吗?您的数据是一个数组; #each 循环遍历数组并在{{#each}} 模板中使用this 获得每个项目。因此,您可以获取每个元素的所有键并使用{{this.key_to_use}} 使用它们。不确定您还需要什么。