javascript - access variable from within foreach loop in vue.js - Stack Overflow

how do I access this.variable from a foreach loop?I have like this<template><div><li>

how do I access this.variable from a foreach loop?

I have like this

<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
      })
    }
  },

So what I want is to have the names in my list. Thanks people :)

how do I access this.variable from a foreach loop?

I have like this

<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
      })
    }
  },

So what I want is to have the names in my list. Thanks people :)

Share Improve this question asked Apr 25, 2018 at 12:57 Mik_AMik_A 3665 silver badges16 bronze badges 4
  • share any live snippet/ demo ? nothing is clear with the code you provided. – Niklesh Raut Commented Apr 25, 2018 at 13:02
  • 1 you can define before function var me= this and inside forEach() you can access using me.variable. – Narendra Jadhav Commented Apr 25, 2018 at 13:03
  • 1. What names property is this.names supposed to set? 2. Note that it will get overwritten repeatedly, as you have it in the forEach callback. 3. Note that this will be either undefined (strict mode) or the global object (loose mode) because you're using a traditional function as the callback and not specifying a this value forEach should use. You may want an arrow function, but it's impossible to say from what you've shown. – T.J. Crowder Commented Apr 25, 2018 at 13:05
  • T.J Crowder. yes I should be putting all thenames in to object value right? and then getting them each with v-for loop I'm not sure hiw to do that though (yet) – Mik_A Commented Apr 25, 2018 at 13:40
Add a ment  | 

1 Answer 1

Reset to default 4

There is two way you can access this inside another function scope (in this case forEach() ).

You can simple create a new variable referencing your scope, like

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
  })
}

, and you will have access to this variable scope inside forEach.

Or you can use arrow functions, which does not create a new scope. Therefore, same this as outside the forEach. Here is an example:

http://jsfiddle/2eAqE/1149/

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745460406a4628683.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信