[英]Iron-router route 'loaded' event
我對Iron-Router有點陌生,但我很好奇是否有一個事件處理程序可以在加載路由后為之定義。 如果我嘗試在Meteor.startup中調用Router.current()。data(),則Router.current()會得到“未定義”。 我想知道一旦在該路由中加載了數據,就可以開始做事的“正確”方式...
您使用的代碼很好Router.current().data()
。
問題是這里存在比賽條件。 這里有兩件事發生,Meteor.startup可能在路由器決定其上的路由之前或之后運行。 如果它在路由加載之前運行,則Router.current()
將為null
。
您可能需要考慮將代碼放入路由的onAfterAction
。 這樣,它也將在正確的頁面上運行。 Router.current().data()
會在其他路由上返回錯誤的數據。
要記住的另一件事是使用Meteor,您首先下載html,js和css並加載它。 然后是數據,因此,當頁面加載時要查找數據時,您必須首先等待它,否則您將一無所有。
Iron Router還具有一個名為onData
的鈎子,當相應路由的data()
更改時,該鈎子會重新運行。 您可以使用它來確保您有可用的數據,並在正確加載所有內容后運行它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.