2015-07-10 50 views
0

只是一個簡單的問題。是什麼導致非遊標的流星陣列(流星中的DDP)

我有一個使用聚合發佈的例子。

Meteor.publish('tags', function(tag){ 
    var sub = this; 
    var pipeline = [ 
     {$project: {tags:1, author: 1, title:1, permalink:1 }}, 
     {$unwind:"$tags"}, 
     {$match: {"tags": tag}}]; 
    var results = Posts.aggregate(pipeline); 
    var arrayLength = results.length; 
    for(var i=0; i < arrayLength; i++){ 
      var tags = results[i]; 
      sub.added('posts', Math.random(), tags); 
    } 
    sub.ready(); 
}); 

爲什麼我需要一個額外的循環來存儲收集帖子中的數據。

for(var i=0; i < arrayLength; i++){ 
    var tags = results[i]; 
    sub.added('posts', Math.random(), tags); 
} 
sub.ready(); 

如果我返回的結果不包括環路sub.added我將獲得非光標錯誤的陣列上我的客戶命名空間。

在我的情況

回答

0

這個代碼

sub.added('posts', Math.random(), tags); 

我們剛纔說的DDP是id = Math.random()fields = tags加入到帖子收集記錄下來。 ddp用於綁定客戶端和服務器,當我們訂閱(客戶端應用程序)時,它應該轉移到客戶端。

流星平臺的例證: enter image description here

DDP已經是一個默認的包一次流星的應用程序是創建。