2012-05-07 20 views
8

Mam kolekcję meteorytów po stronie klientaMeteor użyciu lokalnego wynikiem połączenia w wyniku błędu: insert nie powiodło się: 404 - Metoda nie znaleziono

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

mam użytkownikowi uwierzytelnić się przez Facebook i chcę chwycić listę swoich przyjaciół:

FB.api("/me/friends? auth_token="+response.authResponse.accessToken, 
    function(response){ 
     for (i = 0; i<response.data.length;i++){ 
      Friends.insert(response.data[i]); 
    } 
); 

mam funkcji, aby uzyskać tę listę:

Template.Friends.all_friends = function(){ 
    return Friends.find(); 
} 

mam szablon, który chciałby, aby wyświetlić wszystkich znajomych na ekranie:

<template name="Friends"> 
    {{#each all_friends}} 
    <div id="{{id}}" class="friend"> 
     <img src="http://graph.facebook.com/{{id}}/picture" /> 
     {{name}} 
    </div> 
    {{/each}} 
</template> 

Co wydaje się dzieje na stronie jest to, że wszyscy przyjaciele DO błysk na ekranie na ułamek sekundy po czym natychmiast miga ekran wróć do pustego.

W konsoli javascript pojawia się raz na przyjaciela Mam wiadomość (tak, to jest więcej niż zero, dzięki za zaproszenie)

insert failed: 404 -- Method not found 

Tak! Co przeoczyłem? Ktoś?

Odpowiedz

27

Potrzebujesz tej deklaracji kolekcji zarówno na kliencie, jak i na serwerze.

// common code, do not put under /client or inside Meteor.is_client test 
Friends = new Meteor.Collection("Friends"); 
4

Jeśli chcesz użyć kolekcja tylko po stronie klienta i nie ma potrzeby, aby zapisać te dane do serwera można zadeklarować swoją kolekcję w folderze „Klient” lub w .isClient() funkcji przekazując null Konstruktor taki jak ten:

if(Meteor.isClient()){ 
// Some other code 
... 

onlyClientCollection = new Meteor.Collection(null); 

// Some other code 
... 
} 
+0

To coś mnie zaniepokoiło. Dziękuję za odpowiedź – Pawan

Powiązane problemy