【问题标题】:How to insert data form into table when press a button?按下按钮时如何将数据表格插入表格?
【发布时间】:2017-06-02 02:48:24
【问题描述】:

如何让Vuejs在按下按钮时在一个表格中添加多个数据表单?我可以只用一个表单来做到这一点,我需要通过输入和选择表单来实现它,当我按下按钮将它添加到列表中时。谢谢。

这是一个例子: http://embed.plnkr.co/aax7vC/

【问题讨论】:

  • 除非您向我们展示一些代码以及您已经尝试过的内容,否则我们无法为您提供帮助。
  • 是的,当然。这是一个例子:embed.plnkr.co/aax7vC
  • 那么你的问题是什么?您想在表单中添加一个选择框吗?
  • 我想创建一系列表格,人会写并单击按钮将其添加到表格中或列出其他页面中的所有数据表格(如果可能,可以在同一页面上) )。但我只能用一个表格来做到这一点。感谢您的回复。

标签: javascript vue.js


【解决方案1】:

从您的示例中,我假设您希望多个字段进入元素列表。这意味着一切都与您的数据模型有关。您必须为 1 个单个元素复制所需的“表”结构。因此,只需使用这些字段声明一个对象并进行数据绑定。然后在单击“添加”时,只需添加该对象(假设您的数组属于同一类型)。

app = new Vue({
  el: "#main",
  data: {
    users: [],
    newElement: {user:"",status:""}
  },
  methods: {
    addUser: function(){
      this.users.push({user:this.newElement.user,status:this.newElement.status});
      this.newElement = {user:"",status:""};
    },
    removeUser: function(item){
      this.users.splice(item,1);
    }
  }
});

请注意,推送复制了结构,而不是仅添加 this.newElement。这将导致引用关系,并且当您清除 newElement 时,它将在数组中清除。 那么你的 HTML 可以是这样的:

      <input type="text" v-model="newElement.user">
      <select v-model="newElement.status"><option>Hired</option><option>Fired</option></select>
      <button v-on="click: addUser()" v-attr="disabled: newElement.user ===''">Add</button>
      <p v-if="users.length > 0">Click to remove</p>
      <ul>
        <li v-repeat="u : users" v-on="click: removeUser(u)">{{u.user}} {{u.status}}</li>
      </ul>

【讨论】:

  • 天哪,非常感谢。工作完美。要添加更多内容,只需按照与您相同的方式进行操作即可?
  • 是的,只要添加更多属性就可以了
  • 代码中的本地存储停止工作,你知道为什么吗?
  • 为了代码清晰起见,我删除了它。只需将其放回数据的声明中,并在方法 addUser 和 removeUser 的末尾调用它以更新任何数据更改:data: { users: fetchArray(...), ... } methods: { addUsers:function() { ... saveArray(...); }, ... }
  • 其实你已经有了一个“watch”,这可能比在每个改变数组的方法上调用它更好
猜你喜欢
  • 2020-11-05
  • 2020-02-04
  • 2015-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-28
  • 2021-03-22
  • 2020-07-16
相关资源
最近更新 更多