ember.js - 如何在 Handlebars (Ember.js) 模板的 #each 循环中使用 holder.js?

标签 ember.js handlebars.js holder.js

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

在#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}}

也许我不了解#each 循环的工作原理,但是有什么技巧可以让占位符图像出现在这里?

最佳答案

问题是Holder.run()Ember 之前调用循环遍历所有数据,因此您必须稍后自己再次调用它。

你可以尝试添加

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

或者
Em.run.next(function () { Holder.run(); })

renderTemplate你的路线的钩子(Hook)。 (更好的是在您知道 Controller 已加载所有数据之后添加它。)

关于ember.js - 如何在 Handlebars (Ember.js) 模板的 #each 循环中使用 holder.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16783604/

相关文章:

javascript - Ember .js : Remove row from datatable component after delete

ember.js - 在任何路由之上路由模态

javascript - 如何使用不同的 Controller 更新 Ember.js 中的 hasMany?

twitter-bootstrap-4 - 如何让holder.js与bootstrap 4一起使用?

ember.js - 如何将子记录添加到现有父记录?

javascript - 使用 Backbone 在 Handlebars 中进行迭代

javascript - 在我的 Handlebars 模板加载完成之前,如何才能完成 AJAX 调用?

javascript - holder.js 未在 html 文档中引用或加载

html - 增加 Holder.js 中的文本大小

ember.js - 如何在 ember.js 中使用 ES6 模块(使用 ember cli)?