我想使用新的观察功能,但它似乎不起作用。至少不适合我。
首先,这里首先是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 );
}
}
} );
我知道位置已更改,因为当我重新加载页面时,图像会同步。我尝试使用observe和observeChanged得到相同的结果。如果我在回调中设置了一个断点,它就永远不会被调用。
可能是因为我仍然有insecure
和autopublish
吗?
谢谢你的帮助
答案 0 :(得分:0)
它似乎有助于删除insecure
和autopublish
,但更重要的是,等待订阅准备就绪。
我最终使用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 );
}
}
} );
});
希望有所帮助