2012-05-07 10 views
8

Tengo una colección de meteoritos en el lado del clienteMeteor usando una conexión de resultados locales de error: inserción falló: 404 - Método no encontrado

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

Tengo un usuario se autentique con Facebook y quiero agarrar una lista de sus amigos:

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

tengo una función para obtener esa lista:

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

tengo una plantilla que le gustaría ver a todos los amigos en la pantalla:

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

Lo que parece estar sucediendo en la página es que todos los amigos DO flash hacia arriba en la pantalla durante una fracción de segundo y luego inmediatamente la pantalla parpadea volver al espacio en blanco

En la consola de Javascript el mensaje aparece una vez por amigo que tengo (sí, es más que cero, gracias por preguntar)

insert failed: 404 -- Method not found 

Así! ¿Qué me he perdido? ¿Nadie?

Respuesta

27

necesita esa declaración Colección tanto en el cliente y el servidor.

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

Si desea utilizar Colección sólo en el lado del cliente y que no es necesario guardar los datos al servidor, puede declarar su colección en la carpeta de "cliente" o en .isClient() función pasando a nula el constructor como este:

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

onlyClientCollection = new Meteor.Collection(null); 

// Some other code 
... 
} 
+0

Esto me tenía preocupado. gracias por la respuesta – Pawan

Cuestiones relacionadas