VueJs插入到嵌套列表中

时间:2017-12-18 10:58:50

标签: javascript vue.js

我想让用户创建我的网站结构。例如,我有建筑物和房间。用户必须能够创建建筑物并随后将房间插入其中。但是,我试图做的似乎没有实现它:

JSFiddle到目前为止我所做的一切。

JS

new Vue({
  el: '#vue-app',

  data: {
    buildings: []
  },

  computed: {
    buildingCount() {
        return this.buildings.length
    },
    getBuildingRoomsLength(section) {
        return this.buildings.rooms.length
    }
  },

  methods: {    
    addNewRoomToBuilding(buildingId, newRoom) {
        if(newRoom !== undefined) {     this.buildings[parseInt(buildingId)-1].rooms.push(newRoom.title)
      console.log(this.buildings[parseInt(buildingId)-1])
      }
    },
    addNewBuilding() {
        this.buildings.push({
        id: this.buildings.length+1,
        rooms: []
      })
    },

    deleteTodo(todo) {
      this.todos.$remove(todo)
    }
  }
});

我不确定如何使其发挥作用。我注意到的一些事情是,所有建筑物的房间模型现在都是相同的,我必须根据buildingId进行更改,但是,我还无法弄明白。你能帮我解决一下这个问题。

1 个答案:

答案 0 :(得分:1)

通过将建筑物ID附加到名称的末尾,使建筑物数组中每个项目的模型都是唯一的。

因此模型名称变为v-model="newRoom[building.id]"

并将其传递给您的方法addNewRoomToBuilding(building.id, newRoom[building.id])