[Nota: questa risposta è per Meteor 0.6.6.2 attraverso almeno 1.1.0.2]
[edit: aggiornato per spiegare anche come fare questo, pur non rompendo reattività. Grazie a @DeanRadcliffe, @AdnanY, @TomWijsman, e @MikeGraf]
I dati vengono memorizzati all'interno Session.keys
, che è semplicemente un oggetto, in modo da poter eliminare manualmente le chiavi:!
Session.set('foo', 'bar')
delete Session.keys['foo']
console.log(Session.get('foo')) // will be `undefined`
Per eliminare tutti i tasti, si può semplicemente assegnare un oggetto vuoto per Session.keys
:
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`
Questo è il modo più semplice. Se vuoi assicurarti che tutte le dipendenze reattive siano elaborate correttamente, assicurati di fare anche qualcosa di simile a ciò che @ dean-radcliffe suggerisce nel primo commento. Utilizzare per impostare prima le chiavi non definite, quindi eliminarle manualmente. Come questo:
// 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 = {}
Ci saranno ancora alcuni resti della cosa in Session.keyDeps.foo
e Session.keyValueDeps.foo
, ma che non dovrebbe mettersi in cammino.
Non è consigliabile andare sotto le copertine di 'Session' e manipolare le chiavi direttamente. Puoi comunque usarlo per ogni nome di chiave: 'Object.keys (Session.keys) .forEach (function (key) {Session.set (key, undefined);})' –
Ottimo punto @DeanRadcliffe, ha aggiornato la risposta. – jpadvo
@DeanRadcliffe, molte grazie per il tuo contributo. In realtà stavo seguendo [questo anwser] (http://stackoverflow.com/a/28803605/877353) (che ho modificato ora), e non riuscivo a capire perché la reattività fosse sparita. Senza il tuo contributo, avrei vagato per secoli. Sei forte. Grazie tante! –