将数据添加到Vue.js组件

时间:2016-02-02 22:12:20

标签: javascript mvvm vue.js

大家好我已经掌握了Vue.js并且我已经为表创建了一个组件(称为setupTable)。我希望能够为此动态添加数据。我知道Vue.js会监听数据元素,但我似乎无法通过setupTableComponent.data访问我的组件的数据元素。我如何访问和附加数据到这个组件?

var setupTableComponent = Vue.extend({
  template: '<table id="data-table">'+
              '<tr v-for="item in items">'+
                '<td>{{item.b}}</td>' +
                '<td>{{item.d}}</td>' +
                '<td>{{item.t}}</td>' +
              '</tr>' +
            '</table>',
  data: function(){
    return { items: [
      { t: "Tester", b: "Buster", d: "Duster"},
      { t: "Not a Tester", b: "Not a Buster", d: "Not a Duster"}
    ]};
  }
});

Vue.component('setup-table-component', setupTableComponent);

var setUpDataTableV = new Vue({
  el: '#sidebar',
  ready: function() {
  }
});

1 个答案:

答案 0 :(得分:1)

您可以使用v-ref直接访问子组件:

<div id="sidebar">
  <button @click="onClick">Add item</button>
  <setup-table-component v-ref:table></setup-table-component>
</div>

然后,像这样访问table ref的数据:

this.$refs.table.$data.items.push(data)

https://jsfiddle.net/gjtf6sse/1/