2013-05-24 21 views
7

Ich fange an, mit Meteor zu arbeiten und renne zu meiner ersten Ausgabe. Ich versuche, einen Artikel in meine Sammlung einzufügen. Ich erhalte den folgenden Protokollfehler der Konsole. Kann jemand einem Meteor Noob helfen?Fehler beim Einfügen in eine Meteor-Sammlung

Einsatz fehlgeschlagen: Methode nicht gefunden

Das ist die Linie, die den Fehler verursachen:

Videos.insert({name: el.value}); 

Meine js-Datei:

var Videos = new Meteor.Collection("videos"); 

if (Meteor.isClient) { 
    Template.videoList.video = function() { 
    return Videos.find(); 
    } 

    Template.videoForm.events({ 
    'click button': function(e, t){ 
     var el = t.find("#name"); 
     Videos.insert({name: el.value}); 
     el.value = ""; 
    } 
    }); 
} 
+1

Haben Sie eine 'var Videos = neue Meteor.Collection (" Videos ")' auch auf der Serverseite verfügbar? – Akshat

+0

Ja, das war es. Meine Sammlung war nur auf dem Client. Vielen Dank! – zero

+0

@Tarang Sie sollten Ihren Kommentar als eine Antwort posten, damit Null sie akzeptieren kann. – Boggin

Antwort

12

Wenn Sie Video.insert versuchen. Meteor versucht, sowohl auf dem Client als auch auf dem Server einzufügen. Meteor designed es so, um die Änderung sofort auf dem Client widerzuspiegeln (Latenzkompensation).

Wenn Ihre Videosammlung nicht auf dem Server definiert ist (nicht in Meteor.isServer-Umbruch oder Datei, auf die der Server zugreifen kann). Es wird den Fehler, den Sie angetroffen haben, auslösen.

Wenn Sie nur zum Client einfügen möchten. Sie können darauf mit _collection zugreifen. Ihre insert-Anweisung wäre also Videos._collection.insert (values);

Sie weitere Informationen hier in diesem Screencast finden:

(doc Referenz here)

MyLocalCollection = new Collection(null);

über: http://www.eventedmind.com/feed/meteor-anatomy-of-a-collection-insert

+0

war es schon immer so? Ich meine, dass Collection.insert versuchen sowohl Server als auch Client einzufügen, auch wenn es sich um eine clientseitige Sammlung handelt? – Mascarpone

+1

@Mascarpone Wenn die Sammlung nur Clientseite ist. Es wird nicht zum Server weitergeleitet – Bozhao

6

eine lokale geschützte Auflistung zu erstellen "_collection":

_collection ist eine nicht dokumentierte Eigenschaft, die sich in vielen Fällen merkwürdig verhält. Vielleicht möchten Sie es nicht verwenden.

über nur den lokalen Cache einer Client-Server-Sammlung Manipulation:

Es gibt keine Möglichkeit, dies direkt zu tun. Es ist jedoch sehr einfach, einen dynamischen lokalen Spiegel einer vorhandenen Sammlung zu erstellen (nach meiner Erfahrung ist dies der Weg für jede komplexe Benutzeroberfläche). Siehe this post.

Verwandte Themen