sirven sesiones que pasar para paginas manejo las entre ejemplos ejemplo control _session meteor

meteor - sesiones - ¿Cómo elimino o elimino las variables de Sesión?



pasar variables de session entre paginas php (3)

La desventaja de utilizar delete Session.keys [''foo''] es que su plantilla no se volverá a cargar en caliente si la clave de sesión contiene una matriz. Por ejemplo, si estás haciendo

Template.mytempl.helpers({ categories: function() { return Session.get(''srch-categories'') } })

y en tu plantilla

{{#if categories}} {{#each categories}} {{this}} {{/each}} {{/if}}

Y categorías es una matriz, si elimina la clave de sesión, su plantilla continuará mostrando el último valor de las categorías.

Meteor tiene una sesión que proporciona un objeto global en el cliente que puede usar para almacenar un conjunto arbitrario de pares clave-valor. Úselo para almacenar elementos como el elemento seleccionado actualmente en una lista.

Es compatible con Session.set, Session.get y Session.equals.

¿Cómo elimino un nombre de sesión, par de valores? No puedo encontrar una Session.delete (nombre)?


[nota: esta respuesta es para Meteor 0.6.6.2 hasta al menos 1.1.0.2]

[edit: actualizado para también explicar cómo hacer esto sin romper la reactividad. Gracias a @DeanRadcliffe, @AdnanY, @TomWijsman y @MikeGraf!]

Los datos se almacenan dentro de Session.keys , que es simplemente un objeto, por lo que puede eliminar claves manualmente:

Session.set(''foo'', ''bar'') delete Session.keys[''foo''] console.log(Session.get(''foo'')) // will be `undefined`

Para eliminar todas las claves, 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. Utilice Session.set() para establecer las claves como indefinidas primero, luego, elimínelas manualmente. Me gusta esto:

// 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 del objeto en Session.keyDeps.foo y Session.keyValueDeps.foo , pero eso no debería Session.keyValueDeps.foo .


Session.set(''name'', undefined) o Session.set(''name'', null) deberían funcionar.