2012-05-07 12 views
8

Ho una collezione di meteoriti sul lato clientMeteor con un risultato di collegamento locali in errore: inserto non riuscita: 404 - Metodo non trovato

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

Ho un utente l'autenticazione con Facebook e voglio afferrare una lista dei loro amici:

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

ho una funzione per ottenere quella lista:

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

ho un modello che vorrebbe per visualizzare tutti gli amici sullo schermo:

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

quello che sembra essere accadendo sulla pagina è che tutti gli amici DO Flash sullo schermo per una frazione di secondo e poi immediatamente lo schermo lampeggia torna a vuoto.

Nella console JavaScript appare una volta per ogni amico che ho il messaggio (sì, è più di zero, grazie per avermelo chiesto)

insert failed: 404 -- Method not found 

So! Cosa mi sono perso? Chiunque?

risposta

27

È necessaria la dichiarazione di raccolta sul client e sul server.

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

Se si desidera utilizzare Collezione solo sul lato client e non è necessario per salvare i dati al server è possibile dichiarare la vostra collezione nella cartella "client" o in .isClient() la funzione passando null per il costruttore come questo:

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

onlyClientCollection = new Meteor.Collection(null); 

// Some other code 
... 
} 
+0

Questa cosa mi ha turbato. Grazie per la risposta – Pawan

Problemi correlati