当前位置: 首页 > 知识库问答 >
问题:

获取动态呈现的Vue.js下拉列表以使用Select2库

梁锋
2023-03-14

我是一个新的Vue所以请原谅我如果这是一个简单的问题。我有一个页面,动态呈现一个select下拉菜单,并根据一个名为filteredWidgets的计算属性动态填充它的选项,该属性取决于用户在其他下拉菜单中所做的选择。标记如下所示:

<div v-if="filteredWidgets.length > 0">
 <select id="widgetSelect" name="widgets">
      <option value="">Select up to two Widgets</option>
      <option v-for="widget in filteredWidgets" v-bind:value='widget.id'>
         @{{widget.name}}
      </option>
   </select>
</div>

在Select2文档中,它说明了如何将Select/Option元素转换为Select2 multiselect元素:

$(document).ready(function() {
    $('#widgetSelect').select2();
});

我可以让它在一个带有非动态呈现的select下拉菜单的页面中工作。显然,这对Vue不起作用,因为下拉列表是动态呈现的,并且它是基于计算出的属性SelectedWidgets的。我需要找到一种方法让select2在这个下拉框出现/更改的时候工作。下面是计算出的属性方法filteredWidgets():

filteredWidgets() {
  var filteredWidgets = this.availableWidgets.filter(widget => {
     return widget.color == selectedColor && widget.size == selectedSize;
  });

  return filteredWidgets;
}

虽然默认的select下拉列表按我想要的方式呈现,并包含我想要的筛选小部件,但我需要弄清楚如何在widgetSelect下拉列表由Vue呈现后立即应用select2()。这样做的正确方法是什么?

暂时还没有答案

 类似资料:
  • 问题内容: 我正在开发一个下拉菜单,该菜单使用HTML optgroups作为员工所属的组名。这是MySQL查询和输出: 唯一的问题是,我很难确定如何使optgroup正常工作。我尝试了无数次,这真的开始让我感到沮丧。 以下是我想要的输出示例(示例): 基本上,optgroup必须是“ groupname”,选项“ name”应该是“ emp_id”,而动作“ option”(下拉项)是“ emp

  • 是的,所以我不知道我在做什么。哈。 我想改变select2的未打开的下拉菜单的颜色(也许还有边上的按钮),但是寻找解决方案只是设法阻碍了我 这样可以更改选项(这很好!)但并不是我想要的100%。 有没有改变下拉初始状态颜色的类

  • 我已经创建了动态下拉与文本文件加载在第二个下拉列表 现在我的问题是如何显示第二个下拉只有当用户选择任何选项从第一个框 我需要显示第二个下拉只有当用户选择第一个 充分工作

  • 在ColorBox中使用Select2时,Select2下拉选项无法显示。 我在应用程序的其他地方成功地使用了Select2下拉列表,但这是我第一次尝试在colorbox弹出窗口中使用它。 我尝试了这里列出的所有建议,但都没有用:https://github.com/jackmoore/colorbox/issues/474#issuecomment-25836400 我使用的是jquery V3

  • 问题内容: 在ASP .NET MVC Razor视图中,我有一个下拉列表,如下所示: DeviceModelList只是一个SelectList。 如何根据客户端操作(例如单击按钮或使用Javascript / jQuery/Ajax进行的其他下拉选择)动态填充DeviceModelList? 问题答案: 您可以将此下拉列表局部化: 然后在主视图中将其包含在某个容器中: 那么您可能会有一个控制器

  • 在这里,我想在动态下拉列表中设置一个属性“selected”,当它在MVC中的HttpPost之后被单击时,它会显示相同的第一个文本“请选择一个类别”。 从HttpPost重载后,我想通过使用值来检查和设置选项标签中的属性“选择”,在Foreach循环选项标签中的动态下拉中获得“选择”属性。