Javascript 如何在订阅的数据更改时触发客户端JS方法
我希望我的应用程序在特定订阅数据发生更改时启动一个方法(客户端)?例如,客户端有以下订阅Javascript 如何在订阅的数据更改时触发客户端JS方法,javascript,meteor,meteor-blaze,Javascript,Meteor,Meteor Blaze,我希望我的应用程序在特定订阅数据发生更改时启动一个方法(客户端)?例如,客户端有以下订阅 Meteor.subscribe('thePlayers'); thePlayerssubscription返回通过模板以html格式显示的数据集合 因此,每当集合发生更改时,Meteor也会自动更改HTML中的数据。除此之外,我还希望我的应用程序在数据更改时立即启动一个方法,比如fire()。我应该怎么做才能做到这一点呢?正确地说,cursor.observerChanges是一条路要走。以下是如何将其
Meteor.subscribe('thePlayers');
thePlayers
subscription返回通过模板以html格式显示的数据集合
因此,每当集合发生更改时,Meteor也会自动更改HTML中的数据。除此之外,我还希望我的应用程序在数据更改时立即启动一个方法,比如fire()
。我应该怎么做才能做到这一点呢?正确地说,cursor.observerChanges
是一条路要走。以下是如何将其用于示例(假设您的收藏名为thePlayers
):
客户端
如果您需要在服务器上运行此fire()
,则不需要方法,您只需依赖出版物中的observeChanges
功能或observeChanges
。请参阅以获取如何实现这一目标的示例
如果您需要在客户端上运行此
fire()
,请记住模板中的每个帮助程序都是被动的,这意味着每次更改集合时它都将重新运行。我假设它要求您在其中使用订阅,但这需要得到确认。在不了解更多有关您尝试执行的操作的情况下,我建议您查看。
methodCaller = function (methodName) {
return function (/* arguments */) {
Meteor.apply(methodName, arguments)
}
}
var fireCaller = methodCaller('fire')
thePlayers.find().observeChanges({
added: fireCaller,
changed: fireCaller,
removed: fireCaller
})