- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否有任何方法可以知道#each 循环是否“准备就绪”。 “就绪”是指它渲染了所有节点并插入到 DOM 中。我什至不谈 onRendered
回调(旧的 rendered
)。我试过了
<template name="myTemplate">
<div class="some-class">
{{#if Template.subscriptionsReady}}
{{#each messages}}
<div>{{text}}</div>
{{/each}}
<script>
$(".some-class").trigger("LOOP_READY")
</script>
{{/if}}
</div>
</template>
Template.myTemplate.onRendered(function(){
this.$(".some-class").on("LOOP_READY", doSomething)
})
但它也不起作用。我不想使用计时器。
更新
messages
是当前对话的文本消息集合,dialogId
是存储在 Session
中的 react 变量。
Template.myTemplate.onCreated(function(){
var self = this;
self.autorun(function(){
self.subscribe("messages", Session.get("dialogId"))
})
})
因此,如果有人更改了 dialogId,myTemplate 会加载另一条对话消息,我想知道这些消息何时准备就绪,以便滚动到特定消息。简单的 onReady
不起作用,因为在呈现所有消息并获得自己的高度之前我无法准确调用 scrollTop。
最佳答案
当 Spacebars {{#each}}
block 已将其跨越的每个项目渲染到 DOM 中时,没有简单的方法来获得通知。
最好的解决方案是使用另一个响应式(Reactive)计算 (Tracker.autorun
) 来观察您的消息光标变化。
每次修改您的消息列表时,您都可以在所有其他响应式(Reactive)计算完成后运行任意代码来执行他们的工作,使用 Tracker.afterFlush
。
{{#each}}
block 是其中一种计算,其作用是监听您作为参数提供给它的响应式数据源并重新呈现其 Template.contentBlock
迭代从源中获取的项目的次数,当前项目作为当前数据上下文。
通过监听与 {{#each}}
block 助手完全相同的响应式(Reactive)数据源并在它完成自己的响应式(Reactive)计算后运行您的代码,您可以获得实际请求的行为而无需依靠一些奇怪的 setTimeout
技巧。
下面是这个模式的完整实现:
HTML
<template name="myTemplate">
<div class="some-class">
{{#if Template.subscriptionsReady}}
{{#each messages}}
<div class="message">{{text}}</div>
{{/each}}
{{/if}}
</div>
</template>
JS
// declare your reactive data source once to reuse the same in multiple places
function messagesCursor(){
return Messages.find();
}
Template.myTemplate.helpers({
messages: messagesCursor
});
Template.myTemplate.onRendered(function(){
this.autorun(function(){
// we need to register a dependency on the number of documents returned by the
// cursor to actually make this computation rerun everytime the count is altered
var messagesCount = messagesCursor().count();
//
Tracker.afterFlush(function(){
// assert that every messages have been rendered
console.log(this.$(".messages") == messagesCount);
}.bind(this));
}.bind(this));
});
关于javascript - meteor #each循环准备就绪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30448656/
在我的Kubernetes设置上,我有2个服务-A和B. 服务B取决于完全启动服务A。 我现在想在服务B的Pod中设置一个TCP就绪探针,以便他们测试服务A的Pod是否已完全运行。 Service B
我有一个类(LoadClass),它在页面加载时初始化,并在我的例子中打开一个 SQLite 数据库并执行几个查询。现在我希望其他组件仅在 LoadClass 先前完成加载数据库时执行代码,但这必须随
我有两个应用程序 - app1 和 app2 ,其中 app1 是 config server保存 的配置app2 .我已经定义了 /readiness端点在 app1 并且需要等到它返回 OK启动
我的页面中有一个 iframe,我正在向该 iframe 提交我的表单,因此在 iframe 完成加载后,我需要在每次 iframe 完成加载内容时触发一个函数。 我试过使用 ready 和 load
我正在尝试制作一款游戏。玩家单击“就绪”后,我希望“就绪”框消失(现在,如果您单击就绪框内部,则不会发生任何事情,我不确定为什么)并生成一个随机矩形(随机 x 和 y 坐标)。玩家在第一个矩形的墙壁内
我有另一个 JW Player 问题...我已经实现了 JW Player 以在单击按钮时替换页面顶部的图像。该代码如下所示: Watch now $( ".button-watch1" ).cli
有谁知道我可以在不加载整个框架的情况下使用的优秀 javascript DOM 就绪库?我在 google code 上找到了一个这似乎可行,但该库是在 2008 年发布的,我找不到关于最新跨浏览器支
我在 docker-library/healthcheck 看到了 RabbitMQ 的 docker healthcheck 示例. 我想对我的 Kubernetes 部署应用类似的机制,以等待 R
有人可以解释一下为什么警报语句在这种情况下使用时不会返回任何内容: $(document).ready(function(){ $.get("/getsomedata.php", functi
我已经在一个项目上独立工作了一段时间,现在,由于各种原因,新的开发人员可能会加入该项目。 当然,我使用版本控制软件,但我担心将我的项目导入 Eclipse 并使其运行对新手来说可能有点困难,我希望它尽
我只是想知道是否有人对使用 Promise 时 Node JS 中的“确保就绪”模式有什么好的想法。我有类似的东西,但我认为它的主要问题是我认为 promise 的 .then(cb) 实际上覆盖了前
我知道这是这里的一个常见问题,但我已经对之前回答的问题进行了研究,但似乎找不到我的错误。 作为我正在制作的应用程序的一部分,当页面加载时, document.ready 函数应该查看无序列表中的每个列
谷歌 Ajax 爬虫说明说 !# 实际上被谷歌爬虫转化为 ?_escaped_fragment_。 我想准备我的 Vaadin 7 应用程序以便为 Google 搜索引擎做好 SEO 准备,所以您能否
问题是关于 http://labjs.com – 一个很棒的非阻塞 JavaScript 加载和依赖管理库。 我已经阅读了文档,但我一定是太累了或者什么的——我找不到任何关于 DOM 就绪事件的信息。
我通过 TCP/IP - SOCKET 发送数据 (ZPL) 代码。如果 zebra 打印机在线并准备就绪,我想检查 zebra 打印机的状态。 我谷歌了,但没有找到解决方案。 我知道斑马打印机的静态
我正在尝试连接 JFUSE 项目中的数据库。我在 pom 文件中包含了 com.mysql.jdbc 依赖项,项目构建运行良好。但是后来我遇到了这个烦人的问题。当我尝试将 bundle 安装到 OSG
我有一个条目列表。当我点击这样一个条目时,一个 HTTP 请求就完成了,数据将被加载并显示在一个表格中。到目前为止一切顺利。 现在我尝试创建一个导出函数来一次输出所有表。抽象代码如下所示: this.
我正在创建 CI/CD 管道。 我跑 helm install --wait --timeout 300 ... .但这并没有真正等待,只是在“发布”状态为 DEPLOYED 时返回。 . 那么我在
现在 Storm Spouts 有一个 open 方法来配置它们,而 Bolts 有一个 prepare 方法。有没有办法让所有 Spout 实例等待 Bolt 上的所有 prepare 方法完成监听
要等待某个 pod 完成,命令是 kubectl wait --for=condition=Ready pod/pod-name 同样,我想等待 statefulset 中的任何一个 pod 准备就绪
我是一名优秀的程序员,十分优秀!