0

我是 Meteor 的新手,并试图让 holder.js 在框架中工作。它适用于刷新,但是当从一条路线移动到另一条路线时,它会中断。

文档只是“因为 Meteor 默认在文档顶部包含脚本,所以调用 Holder 时 DOM 可能不完全可用。因此,将与 Holder 相关的代码放在“DOM 就绪”事件侦听器中。”

我假设我需要一个Template.foo.onRendered回调,但不确定如何格式化它。这是HTML:

<img class="holder" src="holder.js/120x120">

这是我在 .js 文件中添加的回调:

Template.contactSingle.onRendered(function() {
  this.$('.holder').Holder.run();
});

同样,holder.js 图像在刷新时出现,但是当从一个页面转到另一个页面时,我无法让它们呈现。我正在使用 FlowRouter 进行路由。

我确定这很简单。任何帮助是极大的赞赏!

4

1 回答 1

1

更改您的代码:

Template.contactSingle.onRendered(function() {
  this.$('.holder').Holder.run();
});

至:

Template.contactSingle.onRendered(function() {
  Holder.run({images: document.querySelectorAll('.holder')});
});

显然你不想做代价高昂的事情document.querySelectorAll('.holder')。如果您可以使用其包装器中的类将其简化为模板。

例如:

模板:

<template name="singlePost">
  <div class="single-post">
    <h2>This is the singlePost area.</h2>
    <img class='holder' src="holder.js/300x200">
  </div>
</template>

onRendered

  Template.singlePost.onRendered(function() {
    Holder.run({
      images: document.querySelectorAll('.single-post .holder')
    });
  });
于 2015-12-03T19:01:46.823 回答