Meteor :等待所有模板渲染完毕

2023-11-23

我有以下模板代码

<template name="home">
    <div class="mainBox">
        <ul class="itemList">
            {{#each this}}
                {{> listItem}}
            {{/each}}
        </ul>
    </div>
</template>

<template name="listItem">
    <li class="item">
        {{username}}
    </li>
</template>

我想在渲染所有“listItem”后执行代码。大约有100个。我尝试了以下方法

Template.home.rendered = function() {
   // is this called once all of its 'subviews' are rendered?
};

但它不会等到所有视图都加载完毕。

了解何时加载所有子视图模板的最佳方法是什么?


我就是这样进行的:

client/views/home/home.html

<template name="home">
  {{#if itemsReady}}
    {{> itemsList}}
  {{/if}}
</template>

<template name="itemsList">
  <ul>
    {{#each items}}
      {{> item}}
    {{/each}}
  </ul>
</template>

<template name="item">
  <li>{{value}}</li>
</template>

client/views/home/home.js

Template.home.helpers({
  itemsReady:function(){
    return Meteor.subscribe("items").ready();
  }
});

Template.itemsList.helpers({
  items:function(){
    return Items.find();
  }
});

Template.itemsList.rendered=function(){
  // will output 100, once
  console.log(this.$("li").length);
};

lib/collections/items.js

Items=new Mongo.Collection("items");

server/collections/items.js

insertItems=function(){
  var range=_.range(100);
  _.each(range,function(index){
    Items.insert({value:"Item "+index});
  });
};

Meteor.publish("items",function(){
  return Items.find();
});

server/startup.js

Meteor.startup(function(){
  Items.remove({});
  if(Items.find().count()===0){
    insertItems();
  }
});

我们指定仅当出版物准备就绪时才呈现项目列表,因此到那时数据就可用并且正确的数量li元素将显示在列表渲染回调中。

现在同样使用iron:router waitOn特征 :

client/views/home/controller.js

HomeController=RouteController.extend({
  template:"home",
  waitOn:function(){
    return Meteor.subscribe("items");
  }
});

client/lib/router.js

Router.configure({
  loadingTemplate:"loading"
});

Router.onBeforeAction("loading");

Router.map(function(){
  this.route("home",{
    path:"/",
    controller:"HomeController"
  });
});

client/views/loading/loading.html

<template name="loading">
  <p>LOADING...</p>
</template>

Using iron:router可能更好,因为它优雅地解决了一个常见模式:我们不再需要 itemsReady 助手,只有当WaitListwaitOn 返回的值将是全局就绪的。

不要忘记添加加载模板并设置默认的“加载”挂钩,否则它将无法工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Meteor :等待所有模板渲染完毕 的相关文章

  • 将按键和焦点事件附加到 contenteditable div 内的元素

    我想附上keypress and focusoutcontenteditable 内段落的事件处理程序div 下面的代码似乎不起作用 div p Test p p Test p p Test p div p1 bind keypress f
  • WebGL iOS 渲染为浮点纹理

    我正在尝试在 iOS Safari 上的 WebGL 中渲染浮点纹理 而不是在本机应用程序中 我已经设法让 iOS 读取手动 例如从 JavaScript 创建的浮点纹理 但是当我创建浮点类型的帧缓冲区并使用 GPU 渲染到其中时 它不起作
  • moment.calendar() 没有时间

    我想使用不带时间的 moment calendar 选项 所以而不是 上周二下午 5 点 我想要 上周二 有人知道 Moment 现在是否有解决方案吗 我找到了这个小提琴http jsfiddle net nawxZ http jsfidd
  • 如何检测不渲染 .png 透明的浏览器

    我有这段代码可以根据一周中的某一天渲染图像 但在 IE6 及更低版本以及可能其他一些浏览器中 它不会呈现 png 不透明度 所以我想稍微改变一下 这样它就会检测到不渲染 alpha 透明度的浏览器 并告诉他们加载这个图像 img horar
  • ExitFullScreen 不起作用 + 无论如何要按键盘单击按钮?

    我的浏览器 Google Chrome 版本 33 0 1750 154 m Script function exitFullscreen var element document documentElement if element mo
  • 如何在 jQuery 中使用 CSS“background-image”属性添加的图像上绑定单击事件

    这是我的小提琴link http jsbin com otisur 1 edit 我想我的问题通过标题本身就很清楚了 尽管如此 我正在寻找一种绑定的方法click使用 css 添加的图像上的事件background image财产 我知道
  • JavaScript 逻辑赋值是如何工作的?

    在 javascript 中 如果我们有一些代码 例如 var a one var b q a alert b 逻辑 OR 运算符会将 a 的值分配给 b 并且警报将为 一 这仅限于作业还是我们可以在任何地方使用它 似乎空字符串被视为与未定
  • 使用 jQuery 的 javascript 关联数组长度

    我正在使用 javascript 关联数组 例如 var testarray testarray one 1 testarray two 2 testarray three 3 我也在旁边使用jquery 如何使用 jquery 或任何其他
  • 无法从 Twin.macro 中的 Prop 获取值

    您可以在这里查看我正在尝试执行的操作的示例 https codesandbox io s vibrant leaf qj8vz https codesandbox io s vibrant leaf qj8vz 注意 这个特定的例子使用双宏
  • 在js中检测浏览器的最佳方法

    JavaScript 中有很多浏览器检测方法 据我所知 使用navigator userAgent或检测特征 例如XMLHttpRequest 等等 谁能告诉我哪种方法最好 最有效 如果你真的需要知道什么browser他们正在使用 你主要需
  • 如何使用 jQuery UI Sortable 正确相交?

    这是我对 jQuery UI Sortable 进行动画处理的尝试 https codepen io anon pen YdMOXE https codepen io anon pen YdMOXE var startIndex chang
  • 设置股票数据 Highcharts xAxis 的格式

    我已经浏览了需要为 xAxis 属性设置的 Highcharts 选项来格式化时间标签 但没有运气了解这对于这种情况到底是如何工作的 我在白天 盘中 检索了股票的动态数据 我需要显示这些数据 因为检索的数据每天从 9 30 开始到 17 0
  • 以编程方式触发 highchart 散点图上某个点的单击事件

    实际上 我有一个小要求 其中有一个带有点列表和下拉列表的散点图 当我从下拉列表中选择一个项目时 应触发其相应的数据点单击 当我在图表上选择一个数据点时 必须执行一些操作 并且下拉列表应根据选择进行更新 我们有什么办法可以做到这一点吗 我尝试
  • 如何按值删除数组中的多个项目?

    我正在尝试做一个removeAll 函数 它将删除具有该特定值 而不是索引 的数组的所有元素 当我们对循环进行任何更改时 棘手的部分就出现了 索引往往会移动 使其很难像我们想要的那样工作 并且每次更改时都重新启动循环 这在大数组上效率非常低
  • apollo 客户端从存储中删除而不发生突变

    我需要通过 id 从本地存储中删除一条 记录 而不使用突变 因为服务器不支持突变 我尝试像这样手动访问商店 delete this apolloClient store getState apollo data 1112 这会删除记录 但是
  • Material.Angular.io mat-autocomplete [displayWith] 函数更新范围变量

    我遇到了一个问题 我可以在实例化 mat autocomplete 的组件控制器中访问本地声明的变量 我面临的问题是局部变量被困在这个范围内 我无法更新它们 有关更新 mat autocomplete 范围变量的任何想法或想法 最终我要做的
  • 是否可以让 webpacks System.import 使用 ajax (用于进度事件)?

    所以我刚刚更新到 webpack 2 并进行了第一个工作设置 其中 webpack 通过查看 System import 调用自动创建块 相当甜蜜 但是 我使用 ajax 调用加载初始块 以便我可以加载时显示进度 https stackov
  • 我将 X Y Z 坐标转换为屏幕 X Y 坐标有什么问题吗?

    我正在制作 3D 空间中弹跳的球体的 HTML5 Canvas 演示 这非常简单 每个球都有 X Y 和 Z 坐标 然后 这些坐标将转换为我在此处阅读的屏幕 X 和 Y 坐标 http answers google com answers
  • 如何在 ionic2 中 pop() 之后重新加载 ion-page

    我有2页Page1 and Page2 我用过this nav pop 在Page2中 它将弹出Page2 Page1将启用 但我想刷新Page1 先感谢您 您可以将父页面与导航推送一起传递 这样您就可以将父页面作为 navParamter
  • 将一维数组转换为二维数组[重复]

    这个问题在这里已经有答案了 我正在开发一个程序 我必须将文本文件中的值读入一维数组 我已经成功获取该一维数组中的数字 m1 1 2 3 4 5 6 7 8 9 但我希望数组是 m1 1 2 3 4 5 6 7 8 9 您可以使用此代码 co

随机推荐

  • 我应该使用 AppDomain.CurrentDomain.BaseDirectory 还是 System.Environment.CurrentDirectory?

    我在同一个文件夹中有两个 exe 文件 我可以通过 exe1 中的按钮运行 exe2 今天 我通过远程 终端服务 会话观察客户 exe2 无法运行 文件未找到 错误 但当我们检查时 exe1 位于同一目录中 所以我应该使用AppDomain
  • Tab 键在 Chrome 扩展的弹出窗口中不起作用

    我创建了一个 chrome 扩展 其中有一个弹出窗口 其中包含以下 HTML 标记
  • H264 视频使用 src 属性工作。使用 MediaSource API (Chromium) 相同视频失败

    http www youtube com html5表示 Google Chrome 兼容 MediaSource Extensions 和 H 264 我做了一个简单的测试 检查我的视频是否受 Chromium 支持 使用 视频 gt 视
  • 防止直接从 amazon s3 下载音频文件

    我在 Amazon S3 中存储了音频文件 可以从基于 Web 的音乐播放器应用程序以及移动应用程序访问这些音频文件 即使未登录的用户也应该能够访问音乐 但是我不希望人们使用该链接来下载内容 这可以在 s3 中完成吗 谢谢 您可以根据 HT
  • 如何用Java代码配置Logback来设置日志级别?

    我想使用默认的 SLF4J Logback 配置 除了设置org springframework data document mongodb日志记录级别为DEBUG 我怎样才能用Java代码做到这一点 我没有使用 XML 并且这个决定是在运
  • MATLAB 中的高效低秩逼近

    我想计算一个矩阵的低秩近似 该矩阵在弗罗贝尼乌斯范数下是最佳的 实现此目的的简单方法是计算矩阵的 SVD 分解 将最小奇异值设置为零 并通过乘以因子来计算低秩矩阵 在 MATLAB 中是否有一种简单且更有效的方法来做到这一点 如果您的矩阵稀
  • Laravel 带有正则表达式的可选前缀路由

    有没有办法创建带有前缀的路由 这样我就可以拥有这样的路由 articles html gt goes to listing Controller in default language en articles html gt goes to
  • 气流 外部传感器卡在戳戳处

    我希望一个 dag 在另一 dag 完成后开始 一种解决方案是使用外部传感器功能 您可以在下面找到我的解决方案 我遇到的问题是依赖的 dag 卡在 poking 上 我检查了这个answer并确保两个 dags 按相同的时间表运行 我的简化
  • 将“元组列表”转换为平面列表或矩阵

    使用 Sqlite select from命令返回结果output 打印 gt gt print output 12 2817 12 2817 0 0 8 52 8 52 它似乎是一个元组列表 我想转换output一个简单的列表 12 28
  • Firebase 真正的离线功能

    我正在尝试了解 Android 上的 Firebase 离线功能实际上能达到什么程度 据我了解 应该可以使数据库 持久化 FirebaseDatabase getInstance setPersistenceEnabled true 文档内
  • 我应该将 go depvendor/ 添加到 .gitignore 吗? [复制]

    这个问题在这里已经有答案了 我应该添加go dep vendor 文件夹到 gitignore 我现在有vendor in gitignore 所以每次部署都会调用dep ensure github gitignore Go gitigno
  • 滤波器阵列 - 奇偶

    如何过滤掉具有奇数或偶数索引号的数组条目 Array 0 gt string1 1 gt string2 2 gt string3 3 gt string4 就像 我希望它从数组中删除 0 和 2 条目 或者说我有 0 1 2 3 4 5
  • 良好的线程 C++ 库

    我更喜欢仅基于 pthreads 的库 对于线程来说 什么是好的 C 库 怎么样增强线程 Boost Thread 允许使用 多线程执行 可移植 C 代码中的共享数据 它 提供类和函数 管理线程本身 与其他人同步数据 线程之间或提供 特定于
  • Windows API 保留参数

    我想知道为什么有些函数有一些参数由于 保留参数 而必须设置为 NULL 例如 LONG WINAPI RegQueryValueEx in HKEY hKey in opt LPCTSTR lpValueName reserved LPDW
  • CSS 子选择器 (>) 不适用于 IE

    下面的 CSS 在 Firefox 下运行良好 但在 IE 浏览器下不起作用 为什么 另外 如何才能只让父元素正下方的元素受 CSS 影响 CSS box font 24px box gt div font 18px box gt div
  • 使用 cabal 安装库时无法解决依赖关系

    我尝试在 Window 10 上使用 cabal 安装库的每一次努力都导致了同样的错误 cabal install gtk cabal exe Could not resolve dependencies 0 trying parconc
  • 如何使用react-native更改Textinput中的电话号码格式

    i want the phone number work Phone format to be as shown in the below image using react native can any one help how to w
  • iOS 上的 Google Analytics:未跟踪事件

    我按照 Google 指南中提供的说明将 Google Analytics SDK 添加到我的项目中 但是 当我尝试跟踪某些事件时 这是调试输出 BOOL application UIApplication application didF
  • 从文本中获取 url [重复]

    这个问题在这里已经有答案了 可能的重复 包含查询字符串的 URL 正则表达式 我有一条短信或消息 嘿 尝试这个http www test com test aspx id 53 我们的要求是从文本中获取链接 我们正在使用以下代码 List
  • Meteor :等待所有模板渲染完毕

    我有以下模板代码