2017-08-07 5 views
1

Ma racine ressemble à ceci. J'ai défini des types et des variables d'historique dans les données et dans watch, j'essaie d'accéder à une autre variable plutôt qu'à celle que je regarde. Essayer d'accéder à la variable d'histoire en dehors .map() fonctionne cependant de l'utiliser à l'intérieur .map() retours undefinedImpossible d'accéder à la variable de données à l'intérieur de watcher, à l'intérieur .map()

new Vue({ 
    el: '#root', 

    data: { 
    types: {}, 
    history: {} 
    } 

    watch: { 
    types: { 
     handler(obj) { 
      console.log(this.history) // works 

      types.map(function(val) { 
       console.log(this.history) // undefined 
      }) 
     } 
    } 
    } 

} 
+0

Vous devez utiliser la syntaxe ES6, essayez 'types.map ((val) => {...})' en supposant que vous utilisez webpack ou quelque chose pour compiler votre JS –

Répondre

1

Parce que vous utilisez un CDN, vous devrez lier this à votre fonction. Effectuez les opérations suivantes:

types.map(function(val) { 
    console.log(this.history) 
}).bind(this); 
+0

J'ai essayé 'types.map ((val) => {...}}' et ça marche bien Merci beaucoup! – senty