1

这个小提琴几乎有我想要的一切:

http://jsfiddle.net/jjpfvx5q/1/

但是我只想出现第一个子选择。就目前而言,如果您首先在主选择中选择第一项,然后从出现的子选择中选择某些内容,然后返回主选择并选择第二个选项,则会出现新的第三个选择框。

我不希望这种情况发生。我只想有一个主要选择和第二个根据第一个中的选择填充。所以就这两个,不管我从主要的一个中重新选择了多少次。

I am new to Vue and find it hard to see where to make that change.
4

2 回答 2

1

问题是,当您选择一个城市时,您会将相同的城市推入 cityPacks 数组。不管存在与否,执行此操作。根据新数据填充新的选择框。

简单地说,你可以在 switch 语句之前清空你的 cityPacks 数组。

this.cityPacks = [];
于 2018-01-28T20:13:58.740 回答
0

@Tugayİlik 的答案是正确的,但如果您想保留使用选择的“历史” cityPacks,您可以将 a 添加v-if到第二个选择

v-if="index === coInit.map(co => co.id).indexOf(country)"

您可能还可以对数据结构进行一些其他优化,具体取决于应用程序的意图。例如,不清楚为什么要使用getCities方法,而不仅仅是将城市嵌套在coInit数组中(以及为什么需要使用setTimeout)。

您还可以使用 acoumputed来获取第二个选择的城市

computed: {
  cities() {
    return this.country ? 
      ? this.country === 2 ? this.cFrance
      ? this.country === 3 ? this.cUSA
      : []
  }
},
于 2018-01-28T20:27:56.940 回答