2014-06-27 65 views
0

我是流星的新人,我試圖弄清楚如何在集合變化後運行函數。流星鐵路由器在集合變化時運行函數

我有一個訂閱了waitOn集合的路由(鐵路由器)。這只是等待subscrition準備就緒之前,這是我想要的。

waitOn: function() { 
     return Meteor.subscribe('collection', this.params._id); 
    }, 

集合的任何更改都將在所有客戶端上更新並自動呈現。

一旦集合發生變化,我將如何運行一個函數?

+1

您可以調用[觀察變化](http://docs.meteor.com/#observe_changes)或[觀察](http://docs.meteor.com /#觀察),具體取決於每次更改是否需要整個文檔。通常,助手用於更改頁面的內容,而不是直接調用觀察。我建議更詳細地解釋你想完成什麼。 –

+0

好吧我已經嘗試過使用Meteor.Defer進行更改,它可以正常工作。我也嘗試在第一個答案中建議的鐵路由器上使用onData選項。他們都很好。但是我應該使用哪一個?哪一個最好? –

回答

1

如果您使用data幫助程序返回數據,則可以使用onData鉤子。例如,這是什麼路線可能看起來像

this.route('routename', 
    path : '/abc', 
    waitOn: function() { 
     return Meteor.subscribe('collection', this.params._id); 
    }, 
    data: function() { 
     return Collection.findOne({_id: this.params.id}); 
    } 
    onData: function() { 
     //Do something when the data found by the above changes 
    } 
}); 
+0

感謝您的答覆,但我似乎無法找到鐵路由器文檔上的onData選項掛鉤。我使用的數據幫手工作正常,但我仍然不知道如何運行一個函數在更新後的dom –

+0

@AndreEscudero看看這裏:https://github.com/EventedMind/iron-router#custom -actions-and-hooks – Akshat

+0

好的謝謝我看看它並試用它 –