[Nota: esta respuesta es para Meteor 0.6.6.2 través de al menos 1.1.0.2]
[editar: actualizado para explicar también cómo hacer esto sin romper la reactividad. Gracias a @DeanRadcliffe, @AdnanY, @TomWijsman y @MikeGraf]
Los datos se almacenan en el interior Session.keys
, que es simplemente un objeto, por lo que puede eliminar manualmente las claves:!
Session.set('foo', 'bar')
delete Session.keys['foo']
console.log(Session.get('foo')) // will be `undefined`
Para borrar todo las teclas, simplemente puede asignar un objeto vacío a 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`
Esa es la forma más simple. Si quiere asegurarse de que las dependencias reactivas se procesen correctamente, asegúrese de hacer algo como lo que @ dean-radcliffe sugiere en el primer comentario. Use Session.set()
para establecer primero las claves indefinidas y luego elimínelas manualmente. De esta manera:
// 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 = {}
Todavía habrá algunos restos de la cosa en Session.keyDeps.foo
y Session.keyValueDeps.foo
, pero que no debe ponerse en el camino.
No es aconsejable pasar por debajo de las cubiertas de 'Session' y manipular claves directamente. Sin embargo, puede usarlo para cada nombre de clave: 'Object.keys (Session.keys) .forEach (function (key) {Session.set (key, undefined);})' –
Muy buen punto @DeanRadcliffe, actualizó la respuesta. – jpadvo
@DeanRadcliffe, muchas gracias por su contribución. De hecho, estaba siguiendo [este artículo] (http://stackoverflow.com/a/28803605/877353) (que edité ahora) y no pude encontrar por qué desapareció la reactividad. Sin su contribución, habría vagado durante siglos. Tu rock ¡Muchas gracias! –