如何在把手中的每个循环(Ember.js)模板中使用holder.js?

如何在把手中的每个循环(Ember.js)模板中使用holder.js?,ember.js,handlebars.js,holder.js,Ember.js,Handlebars.js,Holder.js,我正在一个Ember.js Handlebar模板中循环遍历一组对象,并尝试为每次使用显示一个占位符图像 在#each循环上下文之外,holder.js按预期呈现占位符图像: <img data-src="holder.js/100x100" src='' alt='person image' /> {{#each person in controller}} person.name {{/each}} {{#控制器中的每个人} 人名 {{/每个}} 在#each循环内时

我正在一个Ember.js Handlebar模板中循环遍历一组对象,并尝试为每次使用显示一个占位符图像

在#each循环上下文之外,holder.js按预期呈现占位符图像:

<img data-src="holder.js/100x100" src='' alt='person image' />

{{#each person in controller}}
  person.name
{{/each}}

{{#控制器中的每个人}
人名
{{/每个}}
在#each循环内时,不会出现占位符图像:

{{#each person in controller}}
  <img data-src="holder.js/100x100" src='' alt='person image' />
  person.name
{{/each}}
{{#控制器中的每个人}
人名
{{/每个}}

也许我对每个循环是如何工作的有些不了解,但是有没有一个技巧可以让占位符图像出现在这里呢?

问题是
Holder.run()
Ember
循环所有数据之前被调用,所以您必须稍后自己再调用它

您可以尝试添加

Em.run.schedule('afterRender', null, function () { Holder.run(); })


到路线的
renderTemplate
挂钩。(最好是在你知道你的控制器已经加载了你所有的数据之后再添加。)

我只想说得更清楚一点,以防像我这样的人遇到类似的问题或对它的工作原理感到困惑

首先,如果没有模板,请为模板添加一个视图。如果您正在使用MushroomsRoute,请创建MushroomsView。在您的视图中,执行以下操作:

App.MushroomsView = Ember.View.extend({
    didInsertElement: function() {
        Ember.run.next(function() {
            Holder.run();
        })
     }
});
这应该是可行的——或者至少在Ember 1.0.0中是可行的

App.MushroomsView = Ember.View.extend({
    didInsertElement: function() {
        Ember.run.next(function() {
            Holder.run();
        })
     }
});