为什么 iron-router 会忽略 waitOn?
Why would iron-router ignore waitOn?
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'
您是在告诉路由器 collection 订阅的内容。 collection 和订阅都是响应式数据源。因此,当 collection 发生变化时,waitOn 填充会触发并更新包含 onAfterAction 的路由。
您没有定义 loadingTemplate
。如果没有 Iron Router 就不能使用加载模板所以效果是 waitOn
的等待效果被忽略。
只需添加 loadingTemplate 即可。
onAfterAction
一次又一次运行。第一次是在等待,其他时候是有反应性变化或数据准备就绪。如果您想要不这样做的东西,请改用 onRun
。
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'
您是在告诉路由器 collection 订阅的内容。 collection 和订阅都是响应式数据源。因此,当 collection 发生变化时,waitOn 填充会触发并更新包含 onAfterAction 的路由。
您没有定义 loadingTemplate
。如果没有 Iron Router 就不能使用加载模板所以效果是 waitOn
的等待效果被忽略。
只需添加 loadingTemplate 即可。
onAfterAction
一次又一次运行。第一次是在等待,其他时候是有反应性变化或数据准备就绪。如果您想要不这样做的东西,请改用 onRun
。