Estoy usando VueJS para mostrar a los usuarios activos en un sitio. Cuando un usuario se convierte en activo, Empujador envía JSON con sus detalles –

{
      "token": "97LbfNs7pfPbzVLo",
      "first_name": "Joe",
      "last_name": "Smith",
      "avatar": "http://demo.com/avatar.jpg",
      "phone": "255-255-2555",
      "available" : true,
      "agencies": [
        {
          "name": "Some company",
          "slug": "some-company"
        }
      ]
    }

Cuando el usuario se registra, su token se envía junto con available: false. Necesito a continuación, quitar de mi Vue data de la matriz, esto es donde estoy atascado.

Aquí es la matriz de Datos en mi Vue JS (bastante básico):

data: {
      responders: []
}

ACTUALIZACIÓN
Aquí es una idea muy básica de lo que estoy tratando de lograr, sólo desde fuera de la Vue methods. Básicamente sólo hay que quitar un elemento de la matriz de datos, creo que esto es más de un Javascript relacionadas con el tema más de lo que es específico de la Vue.

@michaelsnowden hizo la sugerencia a los usuarios de la tienda como objetos en lugar de una matriz, pero no estoy seguro de cómo lograr esto. He intentado:

addUser: function() {
            var user = {'asdasdasdop': {name: "Joe"}};
            this.users.push(user);
        }

Que me da:

"users": [
    {
      "asdasdasdop": {
        "name": "Joe"
      }
    }
  ],

Pero más allá de esto no puedo averiguar cómo acceder a estos valores o quitar un elemento de la matriz basada en el token. Cualquier ayuda sería muy apreciada – no he tenido problemas de adición, pero no para la vida de mí averiguar cómo quitar algo.

  • Es el símbolo de IDENTIFICACIÓN de los mismos para convertirse en activo/inactivo?
  • Sí, el mismo token para ambos – el token es como estaba previamente quitando el usuario con un simple jQuery
  • Me siento como que no suministro suficiente de código o describir lo suficientemente bien para mí para darle una buena respuesta. Aquí es un violín que pueden ayudar a algunos: jsfiddle.net/qm8csjv9/1 Y aquí es un violín donde se pueden hacer las cosas «desde fuera de la Vue métodos» jsfiddle.net/qm8csjv9
InformationsquelleAutor NightMICU | 2015-05-29

4 Comentarios

  1. 2

    Vue aumenta visto matrices con un $quitar método que toma el índice numérico como parámetro. Así que usted puede encontrar el índice con algo como:

    var userToken ='potato';
    var tokenToRemove;
    users.forEach(function(user, index) {
        if(userToken === user.token) {
             tokenToRemove = index;
        }
    });
    
    users.$remove(tokenToRemove);

    por lo que puedes encontrar en cualquier manera que usted puede el índice del usuario con el símbolo de la patata , y con el uso de la $método de quitar.

  2. 2
    //hook into pusher    
    ready: () => {
          var self = this;
          socket.bind('new-user', (user) => {
            self.addUser(user)
          })
    },
    methods: {
        addUser: (user) => {
            this.users.push(user)
        },
        deleteUserByToken: (token) => {
            var user = this.findByToken(token);
            if (user != 'undefined') {
                this.users.$remove(user);
            } else { 
                //
            }
        },
        findByToken: (token) => {
            this.users.find((usr) => {
               return usr.token === token
            });
        }
    }

    Referencia de la API de

    Lista de representación de documentación

  3. 1

    En vue 2.x.x, Array.prototype.$remove ha sido eliminado, puede utilizar splice lugar como respondió aquí con vue 2.

    una vez que usted descubre la index, donde se desea eliminar un elemento, puede utilizar simplemente:

    this.users.splice(index, 1)
  4. 0

    Almacenar sus usuarios en un objeto, en lugar de una matriz.

    Cuando un usuario se registra,
    los usuarios[de usuario.token] = usuario

    Cuando un usuario inicia una sesión,
    los usuarios[de usuario.token] = undefined

    • Pensé que Vue transformado la $data entradas en los objetos? Estoy usando vm.$data.push(jsonData) para agregar usuarios a la lista
    • Si pudieras ampliar un poco más realmente lo apreciaría.. he intentado esto pero no se puede averiguar. Gracias!
    • He actualizado mi pregunta con un intento de entender lo que usted está sugiriendo, agradecería cualquier otra información que usted puede proporcionar. Gracias!

Dejar respuesta

Please enter your comment!
Please enter your name here