我在这里找到了类似的问题:
Uncaught TypeError: $(...).select2 is not a function
但这不适合Electron(这是Electron没有解决方案的另一个问题:https://github.com/select2/docs/issues/17),解决方案是检查jQuery是否加载两次。
如何检查我是否两次加载jQuery?
实际上,当我们在窗口中使用“ nodeIntegration = true”时,这对于Electron中的库来说是一个普遍问题,因为我们需要添加一些技巧:
这是我的代码:
<script>
window.$ = window.jQuery = require('jquery');
window.Popper = require('popper.js').default;
window.Bootstrap = require('bootstrap');
dt = require( 'datatables.net-bs4' )(window, window.$);
require( 'datatables.net-fixedheader-bs4' )(window, $);
//require( 'datatables.net-select-bs4' )(window, $);
</script>
<script src="../../js/select2.min.js"></script>
您能看到所有这些丑陋的骇客吗?无论如何,我觉得我没有两次加载jQuery,即使是我,我也在其他所有库之后添加了Select2。
也许是因为我要添加为脚本而不是使用已安装的模块?不能混合它们吗?
更新:
也许问题出在select2.js的这段代码中?
/*! Select2 4.0.7 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof module && module.exports ? module.exports = function(b, c) {
return void 0 === c && (c = "undefined" != typeof window ? require("jquery") : require("jquery")(b)),
a(c),
c
}
: a(jQuery)
}(function(a) {
我不完全了解自己在做什么,但似乎正在检查module.exports,这在Electron窗口中为nodeIntegration = true
是正确的答案 0 :(得分:0)
好的,这是问题所在,如果我们在Electron窗口中使用nodeIntegration = true,则需要以这种方式使用require(不是脚本标签)来加载Select2库:
require( 'YOUR PATH TO/select2.min.js' )(jQuery);
答案 1 :(得分:0)
您的解决方案对我不起作用。 可行:
在renderer / main.js中
require('select2')
很容易)
P.S。 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MovieApp.Models;
namespace MovieApp.Controllers
{
public class HomeController : Controller
{
private dtsdbEntities _db = new dtsdbEntities();
// GET: Home
public ActionResult Index()
{
return View(_db.IPR_CompanyGen_200200501.ToList());
}
// GET: Home/Edit/5
public ActionResult Edit(int id)
{
var CompanyToEdit = (from m in _db.IPR_CompanyGen_200200501 where
(m.CompanyID.Equals(id.ToString())) select m);
return View(CompanyToEdit);
}
// GET: Home/Edit/5
[HttpPost]
public ActionResult Edit(IPR_CompanyGen_200200501 CompanyToEdit)
{
var OriginalCompany = (from m in _db.IPR_CompanyGen_200200501 where
(m.CompanyID.Equals(CompanyToEdit.CompanyID.ToString())) select m.First());
_db.Entry(OriginalCompany).CurrentValues.SetValues(CompanyToEdit).First();
_db.SaveChanges();
return RedirectToAction("Index");
}
}
internal class MoviesDBEntities
{
}
也可以。