vuejs vue route pasar parametros otro matched entre datos comunicacion componentes componente change javascript methods vue.js

javascript - pasar - vue router matched



VueJS accediendo a un método desde otro método. (2)

Estoy usando VueJS para hacer un juego / interfaz de administración de recursos lo suficientemente simple. En el momento en que estoy buscando activar la función de roll cada 12.5 segundos y usar el resultado en otra función. Por el momento aunque sigo recibiendo el siguiente error:

Error de tipo no capturado: no se puede leer la propiedad ''roll'' de undefined (...)

Yo he tratado:

  • app.methods.roll(6);
  • app.methods.roll.roll(6);
  • roll.roll()
  • roll()

pero parece que no puede acceder a la función. ¿Alguien tiene alguna idea de cómo podría lograr esto?

methods: { // Push responses to inbox. say: function say(responseText) { console.log(responseText); var pushText = responseText; this.inbox.push({ text: pushText }); }, // Roll for events roll: function roll(upper) { var randomNumber = Math.floor(Math.random() * 6 * upper) + 1; console.log(randomNumber); return randomNumber; }, // Initiates passage of time and rolls counters every 5 time units. count: function count() { function counting() { app.town.date += 1; app.gameState.roll += 0.2; if (app.gameState.roll === 1) { var result = app.methods.roll(6); app.gameState.roll === 0; return result; } } setInterval(counting, 2500); ... // Activates the roll at times. } }


Puede acceder a estos métodos directamente en la instancia de VM o usarlos en expresiones directivas. Todos los métodos tendrán this contexto automáticamente vinculado a la instancia de Vue.

- Vue API Guide sobre los methods

Dentro de un método en una instancia de Vue, puede acceder a otros métodos en la instancia usando this .

var vm = new Vue({ ... methods: { methodA() { // Method A }, methodB() { // Method B // Call `methodA` from inside `methodB` this.methodA() }, }, ... });

Para acceder a un método fuera de una instancia de Vue, puede asignar la instancia a una variable (como vm en el ejemplo anterior) y llamar al método:

vm.methodA();


Puedes usar vm.methodName();

Ejemplo:

let vm = new Vue({ el: ''#app'', data: {}, methods: { methodA: function () { console.log(''hello''); }, methodB: function () { // calling methodA vm.methodA(); } }, })