0

我想使用新的观察功能,但它似乎不起作用。至少对我来说不是。

首先是这里的结果mrt --version

Meteorite version 0.4.6
Meteor version 0.5.9 (git checkout)

目标是创建一堆可拖动元素,它们的位置会在客户端之间反映出来。

这是我的查询:

  var items = Items.find({});
  var handle = items.observe( {
     changed: function (newDocument, oldDocument) {
        if ( newDocument._id !== dragged ) {
           $( "#" + id ).style( "left", newDocument.left );
           $( "#" + id ).style( "top", newDocument.top );
        }
     }
  } );

我知道位置已更改,因为当我重新加载页面时,图像会同步。我尝试了观察和观察变化,结果相同。如果我在回调中设置断点,它永远不会被调用。

难道是因为我还有insecureautopublish

感谢您的帮助

4

1 回答 1

0

看起来它有助于删除insecureautopublish但更重要的是,等待订阅准备好。

我最终使用了该Meteor.subscribe("name", function() {});语法,它现在可以工作了。

这是完整的代码:

Meteor.subscribe("allItems", function() {
   var items = Items.find( {} );
   Session.set( "items", items.fetch() );

   handle = items.observe( {
      changed: function ( newDocument, oldDocument ) {
         if ( newDocument._id !== dragged ) {
            $( "#" + newDocument._id ).css( "left", newDocument.left );
            $( "#" + newDocument._id ).css( "top", newDocument.top );
         }
      }
   } );
});

希望有帮助

于 2013-03-21T10:31:04.750 回答