我有一个服务器方法:
server / methods.js
Meteor.methods({
removeStructure: function(id) {
this.unblock();
console.log("method removestructure was called on "+ id);
Structure.remove({"overlay_id": id}, function(error, result) {
if (error) {
console.log(error);
} else {
console.log("Deleted " + result + " structures.");
}
});
}
从集合中删除文档时,在观察者中调用它:
的客户机/ x.js
Overlays.find().observe({
removed: function(item) {
console.log('Overlay removed' );
if ( Meteor.isClient ) {
drawnItems.eachLayer(function (layer) {
if (layer.meteor_id == item._id) {
drawnItems.removeLayer(layer);
}
});
}
console.log("attempting to remove meteor id " + item._id);
Meteor.call("removeStructure", item._id);
}
});
什么都没发生。跟踪"试图删除流星id jykkcEJuBL4NfJdte"触发,但是meteor方法不会在服务器上调用。客户端或服务器没有返回任何错误,就像它在该行上跳过清理一样。
当我输入客户端浏览器控制台
时 Meteor.call("removeStructure", "jykkcEJuBL4NfJdte");
它在服务器和客户端上运行没有问题。
这里可能出现什么问题?很难过!