переменная доступа из цикла foreach в vue.js - PullRequest
0 голосов
/ 25 апреля 2018

как мне получить доступ к this.variable из цикла foreach?

У меня вот так

<template><div><li>{{ names }}</li></div></template>
var initData = {
  names: '',
  }
}
export default {
  data: function () {
    return initData
  },
  props: ['nameData'],
  methods: {
    printNames: function () {
      let tempData = JSON.parse(JSON.stringify(this.nameData))
      tempData.biglist.forEach(function (nObj) {
        let cName = nObj.CeName
        console.log(cName) // gives long list of names
        this.names = cName
      })
    }
  },

Итак, я хочу, чтобы имена были в моем списке. Спасибо людям:)

1 Ответ

0 голосов
/ 25 апреля 2018

Есть два способа получить к нему доступ в другой области действия функции (в данном случае forEach ()).

Вы можете просто создать новую переменную, ссылающуюся на вашу область действия, например

printNames: function () {
  let scope = this
  let tempData = JSON.parse(JSON.stringify(this.nameData))
  tempData.biglist.forEach(function (nObj) {

    // I can access scope here

    let cName = nObj.CeName
    console.log(cName) // gives long list of names
    this.names = cName
  })
}

и у вас будет доступ к этой области переменных внутри forEach.

Или вы можете использовать функции стрелок, которые не создают новую область.Поэтому то же самое this, что и вне forEach.Вот пример:

http://jsfiddle.net/2eAqE/1149/

...