如何将 select2 与 Meteor 一起使用?

Posted

技术标签:

【中文标题】如何将 select2 与 Meteor 一起使用?【英文标题】:How to use select2 with Meteor? 【发布时间】:2016-01-30 01:27:36 【问题描述】:

有人可以向我解释 select2 如何与 Meteor 一起工作吗?我正在使用zimme:select2-boostrap3-css,但我不知道如何使用它。

我检查了原始select2 github page 和package 中的那个。第一个解释了如何在没有 Meteor 的情况下使用它。

我是否只需将 jQuery 代码添加到我的一个 *.js 文件中以使其工作?

html 中:

<select class="input" id="clientName" name="clientName">
    #each getClients
        <option value="clientName" data-id=_id>clientName</option>
    /each
</select>

在 JS 中:

$("#clientName").select2();

因为这行不通。

加载我的页面时,我收到此错误Uncaught TypeError: $(...).select2 is not a function

【问题讨论】:

看起来流星版本只是复制 CSS - 可能在某处添加 javascript,如 client/select2.js 同意,这个包只有css。您需要实际的 select2 包之一来获取 js。 您需要包含 Select2 JavaScript 代码。 如果一切就绪,我的方法会好吗? 【参考方案1】:

未捕获的类型错误:$(...).select2 不是函数

发生上述错误是因为您没有包含 Select2 的 JavaScript,如 cmets 中所标识的。气氛package you linked to 只是为了在现有的 Select2 包之上提供引导式样式

您还应该包括meteor add natestrauser:select2

您可能遇到的下一个问题是,当 JavaScript 运行时,&lt;select class="input" &gt; 可能不会加载到 DOM 中,因此$("#clientName") 将找不到任何东西。要等待初始化 Select2 直到页面加载,您应该将代码包装在 jQuery 的 DOM 就绪函数 $(function()); 中,并将其包装在 Meteor.Startup() 中,这样可以很好地衡量:

Meteor.startup(function () 
  $(function()
    $("#clientName").select2();
  );
);

Working Demo in Meteorpad

进一步阅读

How to run JQuery code when document is ready in Meteor?

【讨论】:

非常感谢。它仍然没有立即起作用,但您的进一步阅读链接为我提供了我需要的信息!我不得不使用 Template.onRendered 来做 jQuery 魔术。今天我学到了一些新东西。

以上是关于如何将 select2 与 Meteor 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

将 Select2 与烧瓶 wtforms 一起使用

如何在 Meteor 中使用`moment.js`?

如何使 select2 与 Angular 7 一起使用

如何将 select2-rails 与 simple_form 一起使用?

将 Select2 和 X-Editable 与最新版本一起使用

将 GCM 与 Meteor 一起使用