为什么 $.each 只显示我的一个 Mustache 模板?

Why does $.each show only one of my Mustache templates?

我在 $.each 中使用 $.get 来调用外部 Mustache 模板以用于我数组中的每个照片对象。

这是我的代码:

$.when.apply($, requests).then(function(dataOne, dataTwo) {
    $.each(dataOne, function(idx, obj) {
        $.get("myTemplate.mst", function(template) {
            var rendered = Mustache.render(template, obj);

            $photoElem.html(rendered);
        });
    });
});

我的问题是,一旦我刷新屏幕,只有一个数组对象出现。我知道 {{#item}} 遍历数组,但我使用 $.each 是出于非常具体的原因。

谁能告诉我我做错了什么?

试试这个

 $.when.apply($, requests).then(function(dataOne, dataTwo) {
      $.get("myTemplate.mst", function(template) {
          $.each(dataOne, function(idx, obj) {
             var rendered = Mustache.render(template, obj);
             $photoElem.append(rendered);
         });
     }); 
 });

假设问题导致您替换 $photoElem 的内容(使用 .html() )而不是附加每个新项目

我将 .html() 替换为 .append(

并更改代码以仅读取一次模板(如@Andy 所说)