如何在把手中的每个循环(Ember.js)模板中使用holder.js?
我正在一个Ember.js Handlebar模板中循环遍历一组对象,并尝试为每次使用显示一个占位符图像 在#each循环上下文之外,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循环内时
<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();
})
}
});