代码之家  ›  专栏  ›  技术社区  ›  Un1

vue.js-在不在v-for循环中显示的方法(单击)中创建的值

  •  0
  • Un1  · 技术社区  · 6 年前

    我想让程序获取一些数据 @click 然后显示在 v-for 循环。

    单击按钮后,数据显示在控制台中,但在页面上看不到任何显示。

    是因为正在创建数据吗 之后 元素已呈现? 如何使Vue重新呈现循环以显示获取的数据?

    Codepen: https://codepen.io/x84733/pen/jKxQKo?editors=1010

    <v-btn @click="fetchData">
      fetch propeties 
    </v-btn>
    
    <h2>Properties:</h2>
    <div v-for="item in properties">
      <div>{{item.title}}: {{item.value}}</div>
    </div>
    
    ...  
    
    data () {
      return {
        properties: {}
      }
    },
    methods: {
      fetchData () {
        var nameObj = {'title': 'name'}
        var sizeObj = {'title': 'size'}
    
        nameObj['value'] = 'file.txt'
        sizeObj['value'] = 12
    
        this.properties['name'] = nameObj
        this.properties['size'] = sizeObj
    
        console.log(this.properties)
      }
    }
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   pr0p    6 年前

    在VUEJS的文档中,清楚地提到了V-OFF是用于数组而不是对象。

    https://vuejs.org/v2/guide/list.html

    属性是一个名为size的对象。

    做这个改变

    new Vue({
      el: '#app',
      data () {
        return {
          properties: []
        }
      },
      methods: {
        fetchData () {
          var nameObj = {'title': 'name'}
          var sizeObj = {'title': 'size'}
          
          nameObj['value'] = 'file.txt'
          sizeObj['value'] = 12
          
          this.properties.push(nameObj)
          this.properties.push(sizeObj)
          
          console.log(this.properties)
        }
      }
    })

    更改之后,代码将运行良好。