如何根据v-for的值,在我的模态窗口上(在按钮点击时)获取所选数据?
问题的原因是在v-for
中的b-modal
没有给一个唯一的ID。当点击按钮时,实际上是同时打开了所有的模态窗口,并且堆叠了背景,使其看起来非常暗。解决方法是使用产品的ID
(假设是唯一的)作为模态窗口的ID,使其唯一。
代码示例:
{{ allRecords() }}
{{ product.amount }}{{ product.Description }}More Details >> {{ product.Name }}
{{ product.Description }}
问题可能与背景显示在前面有关。您可以尝试在打开窗口后查看DOM,以查看模态窗口是否实际存在。您可以尝试参考上面提供的代码示例,它是正常工作的。
以上是该问题的原因和解决方法。
问题出现的原因是点击"More Details"按钮时,会显示多个模态窗口,无法正确获取选中的数据。
解决方法是在包裹中添加一个模态窗口,并将选择的产品存储在数据变量中。
具体代码如下:
{{ allRecords() }}
{{ product.amount }}{{ product.Description }}More Details >> {{ chosenProduct.Name }}
{{ chosenProduct.Description }}
Vue.use(BootstrapVue) var app = new Vue({ 'el': '#myapp', data: { products: [], chosenProduct: null }, methods: { chooseProduct: function (product) { this.chosenProduct = product }, allRecords: function(){ this.products = [ { ID: 1, Description: 'dek', Name: 'Name', amount: 100 }, { ID: 2, Description: 'dek 2', Name: 'Name 2', amount: 300 } ] }, } })
在这个解决方案中,添加了一个click事件监听器,当点击"More Details"按钮时,调用chooseProduct方法来更新chosenProduct的值。这样,模态窗口就能正确显示选中的产品的详细信息。
问题出现的原因是在点击"More Details"按钮时,无法获取到所选数据的原因。解决方法是添加一个名为selectedProduct的属性,并在点击事件中将当前产品赋值给selectedProduct成员。具体实现是在HTML中添加一个b-modal组件,然后在按钮的点击事件中调用selectProduct方法,将所选产品赋值给selectedProduct。在JavaScript中定义一个Vue实例,并在data中定义products、productID和selectedProduct三个属性。在methods中定义了allRecords和selectProduct两个方法,其中selectProduct方法用于将选中的产品赋值给selectedProduct属性。在实现过程中,需要将b-modal组件放在v-for循环之外。