ERROR:TypeError: $(...).selectpicker 不是使用 requirejs 的函数加载库
Posted
技术标签:
【中文标题】ERROR:TypeError: $(...).selectpicker 不是使用 requirejs 的函数加载库【英文标题】:ERROR:TypeError: $(...).selectpicker is not a function loaded library using requirejs 【发布时间】:2016-06-07 17:19:16 【问题描述】:ERROR:TypeError: $(...).selectpicker is not a function 首次打开 Web 应用程序时发生错误。
在我的 app.js 中
需要js.config( baseUrl: '', 路径: "jquery": "js/jquery", "jquery-ui": "js/jquery-ui", 文本:“库/文本”, //"css": "css", 车把:'js/车把', 时刻:“js/moment.min”, 引导程序:'js/bootstrap.min', somtjquery: '小部件/somt/js/somtjquery', 引导选择:'js/引导选择', utils: '小部件/somt/js/utils', filterwidget: '小部件/somt/js/filterwidget' , 垫片: 车把: 出口:“车把” , “引导”: 部门:['jquery'] , //'bootstrapdatepicker':deps: ['jquery','bootstrap'], 'somtjquery': 部门:['jquery','utils','bootstrap'] , “引导选择”: 部门:['jquery','bootstrap'] , 'jquery': 出口:'$' , “日期选择器”: deps: ["jquery-ui", "bootstrap"], 出口:“$.fn.datepicker” , “工具提示”: 部门:['jquery'], 出口:'$.fn.tooltip' , '过滤器小部件': deps: ['jquery', "jquery-ui", "bootstrap", "bootstrapselect"], 出口:'filterwidget' ); 在 filterwidget.js 定义([“车把”,'hbs!widgets/somt/templates/pfilter'],功能(车把,过滤器) var selector = "#somt-filter-area"; $(选择器).html(过滤器); $(函数选择日期选择器() 尝试 $(selector).find('.selectpicker').selectpicker(); 抓住 (e) console.log("日期选择错误信息:" + e); 尝试 $(selector).find("#week").datepicker( showOn: "按钮", buttonImage: "图片/通用日历月字形.svg", buttonImageOnly:真, 第一天:1, beforeShowDay:函数(日期) 返回 [date.getDay() === weekofday, ""]; , dayNamesMin: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], maxDate:当前截止日期, 日期格式:'mm/dd/yy' ); 抓住 (e) console.log("日期选择器错误信息:" + e); ); );特别是我在 Firefox 36 及以下版本中遇到了错误
【问题讨论】:
【参考方案1】:您误解了如何使用 shim
。 Config 没有正确的 filterwidget
依赖项。使用 'shim' 必须仅用于非 amd 库。如果文件具有define
功能而不是它的amd 模块,并且该模块不需要shim
。从shim
删除这段代码:
'filterwidget':
deps: ['jquery', "jquery-ui", "bootstrap", "bootstrapselect"],
exports: 'filterwidget'
并在 filterwidget.js 中为 filterwidget 设置所有依赖项:
define(['jquery', "jquery-ui", "bootstrap","bootstrapselect","handlebars",'hbs!widgets/somt/templates/pfilter']
ps:同时从 shim 中删除 jquery、jquery-ui。这是 AMD 库。你怎么知道?只看图书馆的开头。例如'jquery-ui'。如果有这样的情况:
if ( typeof define === "function" && define.amd )
// AMD. Register as an anonymous module.
define([ "jquery" ], factory );
else
// Browser globals
factory( jQuery );
那么就不需要垫片了。
【讨论】:
以上是关于ERROR:TypeError: $(...).selectpicker 不是使用 requirejs 的函数加载库的主要内容,如果未能解决你的问题,请参考以下文章
ERROR TypeError:“无法在”signUpForm“上分配给属性”validator“:不是对象”
如何修复'ERROR TypeError:Object(...)不是函数'?
Vue ERROR TypeError: Cannot read property 'upgrade' of undefined
Syntax Error: TypeError: Cannot read property ‘parseComponent‘ of undefined (vue报错)
使用 AngularFirestore 和 firebase 的“ERROR TypeError: Object(...) is not a function”