javascript - 使动态创建的下拉菜单与初始下拉菜单中的 Vue 模型中的值匹配

标签 javascript html vue.js dynamic html-select

我有一个从我的 Vue 模型中的数组填充的下拉列表,如下所示:

<!-- First dropdown -->
<select v-model="building">
  <option v-for="building in buildings" v-bind:value="building.id">
      {{ building.name }}
  </option>
</select>
<!-- Entries Input -->
<input v-model="entries" type="number">

在用户选择此下拉列表并单击按钮后,将创建一堆其他下拉列表(数量取决于用户在另一个输入字段中键入的数字):

<!-- Dynamically created dropdowns -->
<div v-for="entry in entries">
  <select>
    <option v-for="building in buildings" :selected="building.id == building">
      {{ building.name }}
    </option>
  </select>
</div>

我需要动态创建的下拉菜单具有与第一个下拉菜单相同的选择。我无法通过 v-model 绑定(bind)它们,因为我需要它们中的每一个都能够在不影响其他的情况下进行更改。

知道怎么做吗?我认为我的代码 :selected="building.id == building" 会起作用,但它似乎不起作用。

最佳答案

尝试将第二个下拉列表绑定(bind)到基于第一个下拉列表的计算属性,如下所示:

 computed:{
          cpt_building:{
                    get(){
                      return this.building;
                      },
                    set(value){
                     //use your value whatever you want
                      }
                }

模板:

  <div v-for="entry in entries">
     <select v-model="cpt_building">
       <option v-for="build in buildings" :selected="build.id == building">
         {{ building.name }}
       </option>
     </select>
   </div>

或者您可以创建另一个数据属性并通过观察第一个数据属性来更改它。

   data(){
        return{
           building:0,
           building2:0,
           ...
            }
          },
    watch:{
         building(val){
              this.building2=val;
               }
           }

模板:

  <div v-for="entry in entries">
     <select v-model="building2">
       <option v-for="build in buildings" :selected="build.id == building">
         {{ building.name }}
       </option>
     </select>
   </div>

关于javascript - 使动态创建的下拉菜单与初始下拉菜单中的 Vue 模型中的值匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54486374/

相关文章:

html - 表格标题中的 CSS 转换调整标题单元格的大小

vue.js - 如何使用 Vue.js SPA 将索引机器人重定向到不同的路由,以服务器渲染页面以便它们被抓取和索引?

javascript - 如何使 JavaScript 中的这个选择框起作用,以便它启用另一个选择框?

javascript - Vue.js:在 laravel 公共(public)文件夹中显示个人资料图片

javascript - 在计算属性中使用条件逻辑无法更新

javascript - 如何延迟显示页面内容直到页面完全加载(包括脚本和样式)

javascript - 为什么来 self 的 api 的数据只显示一次,当我刷新页面时它给出了一个错误

javascript - 在 Chrome 中使用 React Native 调试 ES6 import 语句

javascript - 如何使用 javascript 阻止来自特定站点的图像?

javascript - 表不再正确附加溢出 :auto and floated container below