Meteor 如何在每次从服务器更新集合时调用函数?
例如,在中,当另一个用户更改Paries集合时,此控制器将自动更新Paries对象,但我们如何捕获此更新并运行一些控制器逻辑Meteor 如何在每次从服务器更新集合时调用函数?,meteor,angular-meteor,Meteor,Angular Meteor,例如,在中,当另一个用户更改Paries集合时,此控制器将自动更新Paries对象,但我们如何捕获此更新并运行一些控制器逻辑 this.helpers({ parties: () => Parties.find({}) }); 具体问题: 收到的答案并不能解决我的问题,因为更新时我需要执行的不是服务器逻辑或任何数据库操作。实际上,我需要运行的是控制器逻辑 在下面的示例中,如果表单未更改,我将禁用submit按钮。isFormChange函数将参与方与原始参与方进行比较。当参与方从服务器端
this.helpers({ parties: () => Parties.find({}) });
具体问题:
收到的答案并不能解决我的问题,因为更新时我需要执行的不是服务器逻辑或任何数据库操作。实际上,我需要运行的是控制器逻辑
在下面的示例中,如果表单未更改,我将禁用submit按钮。isFormChange函数将参与方与原始参与方进行比较。当参与方从服务器端更改时,我需要重新定义originalParty值。那我该怎么做呢
<form ng-submit="vm.updateParty()">
<input type="text" ng-model="vm.party.name">
<input type="submit" ng-disabled="!vm.isFormChanged()" value="Submit">
</form>
使用包在更新、追加、插入和删除之前或之后运行代码
myCollection.after.update(userId, doc, fieldNames, modifier, options){
...your code
}
如果在中有数据库功能,则可以在服务器上运行逻辑 例如:
Parties = new Mongo.Collection("parties");
if (Meteor.isClient) {
// This code only runs on the client
Meteor.subscribe("parties");
/* a helper or event can run the Meteor.call() */
var partyData = {}; // get partyData
Meteor.call("insertParty", partyData,
// callback function
function (error, result) {
if (error) { console.log(error); };
});
}
if (Meteor.isServer) {
// This code only runs on the server
Meteor.publish("parties", function () {
return Parties.find({});
});
Meteor.methods({
insertParty: function (partyData) {
// insert logic to run on partyData here
Parties.insert(partyData);
}
})
}
谢谢你的回答,但请检查指定的问题。谢谢你的回答,但请检查指定的问题。
Parties = new Mongo.Collection("parties");
if (Meteor.isClient) {
// This code only runs on the client
Meteor.subscribe("parties");
/* a helper or event can run the Meteor.call() */
var partyData = {}; // get partyData
Meteor.call("insertParty", partyData,
// callback function
function (error, result) {
if (error) { console.log(error); };
});
}
if (Meteor.isServer) {
// This code only runs on the server
Meteor.publish("parties", function () {
return Parties.find({});
});
Meteor.methods({
insertParty: function (partyData) {
// insert logic to run on partyData here
Parties.insert(partyData);
}
})
}