2014-04-28 18 views
0

我希望在我的應用程序中有能力與其他用戶交流。發送好友請求,然後另一個人可以選擇是否接受。我想要有兩個不同的列表,第一個列表是用戶朋友,第二個列表是向他或她發送好友請求的人。目前,我有一個朋友收藏:我是否正在以正確的方式製作「朋友」系列?

Friends = new Meteor.Collection("friends"); 

我創建的朋友的方法是:

Template.friend.events({ 
    'click #addFriend': function(e, t) { 
     var email = $("#friendEmail").val(); 
     var friend = Meteor.users.find({ "email.address" : email }); 
     if (friend) { 
      return Friends.insert({friend1:Meteor.userId(), 
            friend2:friend._id, 
            name: email, 
            stat: 'Pending'}); 
     } 
    } 
}); 

現在我變得有點卡住,我目前所面對的一個模板來檢索朋友:

Template.friend.friends = function() { 
    return Friends.find({friend1: Meteor.userId()}); 
} 

然後,我有我的html:

{{#each friends}} 
    <div class="row"> 
    <div class="... columns"> 
     <p>{{name}} {{stat}}</p> 
    <div class="... columns"> 
     <p>{{name}} {{stat}}</p> 
    </div> 
    </div> 
{{/each}} 

來呈現朋友。

但這裏是問題:我如何確保朋友二可以接受任何請求,以及如何創建兩個單獨的列?更重要的是,我覺得這是一種不正確的做事方式,我是否應該以這種方式接近它?

編輯:

我已經戒掉了Friends收集的,並提出了Notifications收集以下鳳凰的協議,我已經創建了下面的測試,看看它是否會工作:

Template.friends.sent = function() { 
    return Notifications.find({from: Meteor.user(), 
           type: "friendship" 
           }); 
} 

隨着下面的HTML:

{#each sent} 
    <p>{{to.emails.0.address}}</p> 
{/each} 

但它返回一個錯誤說:

Expected IDENTIFIER 

回答

3

保持兩個集合:

Meteor.usersNotifications

當朋友請求被髮送您註冊它Notifications,與type : friendshipstatus : pendingfrom : user1to : user2

然後,在用戶配置文件中說,您可以查詢用戶2的未決通知,而不管他們是誰。如果user2接受,則您在Meteor.users集合上爲user1註冊它。處理請求後,如果接受或不接受,您可以刪除通知。

事實上,我甚至可以從Notificationts集合中取出status屬性,因爲在這種方法中,您最終可以刪除它們。

關於兩列模板。你是使用Bootstrap還是普通的css?

自舉(3在這種情況下):

<div class="row"> 
    <div class="col-xs-6">{{columnOne}}</div> 
    <div class="col-xs-6">{{columnTwo}}</div> 
</div> 

隨着純CSS

.row { width: 100%; } 
.column { width: 50% } 
+0

我爲響應晚對不起,我更新了我的問題,如果你不知道如何爲回答第二部分,我正在考慮將此分成兩個問題。感謝你目前的幫助! – Dair

+0

嘿,匿名!很高興我的回答有一些用處。我想我會更好地爲這個創建一個github倉庫,這樣我們就可以對它進行破解了。晚些再聊! – stringparser

+0

我有一個github存儲庫。目前它是私有的,因爲它沒有真正執行任何操作,並且我不想在實際工作之前公開它,但是如果我可以擁有github用戶名,我可以將其添加爲github協作者。 :D我會盡我所能去起草項目的目標,但我有很多的學習。 – Dair