[Anmerkung: Diese Antwort ist für Meteor 0.6.6.2 durch mindestens 1.1.0.2]
[edit: aktualisiert auch zu erklären, wie diese zu tun, während nicht Reaktivität zu brechen. Dank @DeanRadcliffe, @AdnanY, @TomWijsman und @MikeGraf]
Die Daten innerhalb Session.keys
gespeichert ist, was einfach ein Objekt ist, so dass Sie die Schlüssel manuell löschen:
Session.set('foo', 'bar')
delete Session.keys['foo']
console.log(Session.get('foo')) // will be `undefined`
alle löschen
Session.set('foo', 'bar')
Session.set('baz', 'ooka!')
Session.keys = {}
console.log(Session.get('foo')) // will be `undefined`
console.log(Session.get('baz')) // will be `undefined`
das ist der einfachste Weg: die Tasten, können Sie einfach ein leeres Objekt zu Session.keys
zuweisen. Wenn Sie sicherstellen möchten, dass alle reaktiven Abhängigkeiten korrekt verarbeitet werden, stellen Sie sicher, dass Sie auch etwas tun, was @ dean-radcliffe im ersten Kommentar vorschlägt. Verwenden Sie Session.set()
, um die Schlüssel zuerst auf undefiniert zu setzen und dann manuell zu löschen. Wie folgt aus:
// Reset one value
Session.set('foo', undefined)
delete Session.keys.foo
// Clear all keys
Object.keys(Session.keys).forEach(function(key){ Session.set(key, undefined); })
Session.keys = {}
Es wird noch einige Reste der Sache in Session.keyDeps.foo
und Session.keyValueDeps.foo
, aber das sollte nicht in die Quere kommen.
Es ist nicht ratsam, unter die Abdeckungen von 'Session' zu gehen und Schlüssel direkt zu manipulieren. Sie können es jedoch für jeden Schlüsselnamen verwenden: 'Object.keys (Session.keys) .forEach (Funktion (key) {Session.set (Schlüssel, undefined);})' –
Sehr guter Punkt @DeanRadcliffe, aktualisiert die Antwort. – jpadvo
@DeanRadcliffe, vielen Dank für Ihren Beitrag. Ich folgte tatsächlich [diese Anwers] (http://stackoverflow.com/a/28803605/877353) (die ich jetzt bearbeitet habe) und konnte nicht herausfinden, warum die Reaktivität weg war. Ohne Ihren Beitrag wäre ich seit Ewigkeiten gewandert. Du schaukelst. Vielen Dank! –