2014-10-05 48 views
1

我正在尋找一種方式來等待之前呈現waitOn參數提供任何內容。meteorjs - 強制鐵路由器等待呈現的所有,直到waitOn完成

  1. 使用onBeforeAction( '裝')
  2. 使用行動:

    目前,它與推薦的方式完美地工作功能(如果(this.ready())this.render())

  3. waitOn:function(){return [Meteor.subscribe()...]}

    因此,在呈現路由模板時,呈現進程將等待。但是,當我在主模板中包含模板時,「子」模板將在waitOn選項結束之前呈現。

那麼,什麼是推薦的方式告訴鐵路由器等待waitOn準備狀態之前使所有包含的模板,也都產子模板?

+0

我可以問你在哪裏讀過這是推薦的方式嗎?我目前正在瞭解流星,這將非常有幫助。 – 2015-11-10 16:27:55

+1

它改變了很多如何做到這一點。 http://iron-meteor.github.io/iron-router/這是最新的指南。您可以在本指南中找到有關此問題的示例。你必須使用this.ready()函數來觸發你的this.render()函數。 – TJR 2015-11-10 16:31:23

回答

0

對於我這樣的偉大工程:

this.route('note',{ 
    path: '/note/:_id', 
    waitOn: function() { return Meteor.subscribe('notes')}, 
    data: function() { 
     if(this.ready()){ this.render(); 
      return Notes.findOne(this.params._id); 
     }else{this.render('loading') }} 
}); 

無閃爍的內容或任何東西。

但也想知道古魯如何處理它。

+0

嗨yoK0 - 我想你不明白我的問題。你做的和我做的一樣。我的問題不是主模板(在你的情況'節點')snt等待數據 - 問題是yield-templates(子模板)不在等待,並且也是在主模板中呈現的模板。 – TJR 2014-10-05 15:23:44

+0

嗯。該模板進入良品狀態。你可以提供一些代碼'粘貼'。 – yoK0 2014-10-05 17:07:24

+0

我將在明天上傳一些代碼,以便您可以看到問題。 – TJR 2014-10-05 18:30:37