【问题标题】:Why would iron-router ignore waitOn?为什么 Iron-router 会忽略 waitOn?
【发布时间】:2015-02-16 16:11:14
【问题描述】:

onAfterAction 运行两次,一次在数据到达之前,一次在数据到达之后。为什么它在数据到达之前运行?此外,在这个基本版本中,rendered 在数据到达之后被调用,但在我的应用程序中,它在数据到达之前被调用。知道为什么会这样吗?基本再现:

https://github.com/lorensr/waiton-bug

Items = new Meteor.Collection 'items'

Router.configure
  waitOn: ->
    Meteor.subscribe 'items'

if Meteor.isServer
  Meteor.publish 'items', ->
    Items.find {}

Router.route '/',
  name: 'hello'

【问题讨论】:

  • 不应该等待返回一个数组吗?您只需订阅,无需任何返回或数组。
  • 您不必返回数组 - 您可以返回单个订阅。
  • 对,这个习惯可能是我从旧 API 那里得到的

标签: meteor iron-router


【解决方案1】:

您没有定义loadingTemplate。 Iron Router 没有加载模板是无法使用的,所以waitOn的等待效果被忽略了。

只需添加 loadingTemplate 即可。

onAfterAction 运行一次又一次。第一次在等待时,其他时间在发生反应性更改或数据准备就绪时。如果您想要一些不这样做的东西,请改用onRun

【讨论】:

    【解决方案2】:

    您正在告诉路由器收集订阅的内容。集合和订阅都是反应式数据源。因此,当该集合更改时,waitOn 填充会触发并更新包含 onAfterAction 的路由。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-07
      • 1970-01-01
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      相关资源
      最近更新 更多