javascript – 使用RequireJS敲除自定义引导程序绑定错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 使用RequireJS敲除自定义引导程序绑定错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1593字,纯文字阅读大概需要3分钟。
内容图文
我有一个针对bootstrap工具提示的自定义knockout绑定,有时候页面加载很好,有时我在绑定中抛出这个错误.
$(…).tooltip is not a function
我在发生这种情况的部分设置了一个断点,有时jquery对象上没有任何引导函数.我只能假设这是由require加载引导程序库的时间问题.就像我说的那样,每次都不会发生这种情况,而且当开启dev工具控制台时,它似乎经常发生.
这是我的require配置
requirejs.config({
waitSeconds: 200,
shim: {
"bootstrap": {
deps: ['jquery'],
exports: "$.fn.tooltip"
}
},
enforceDefine: true,
paths: {
jquery: 'jquery-1.11.3.min',
bootstrap: 'bootstrap.min',
moment: 'moment.min',
knockout: 'knockout.min',
appVM: 'appVM',
custombindings: 'custombindings'
}
});
而我的约束力
define(['knockout', 'jquery', 'bootstrap'], function (ko, $, bootstrap) {
ko.bindingHandlers.tooltip = {
init: function (element, valueAccessor) {
var local = ko.utils.unwrapObservable(valueAccessor()),
options = {};
ko.utils.extend(options, ko.bindingHandlers.tooltip.options);
ko.utils.extend(options, local);
$(element).tooltip(options); //Error thrown here
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).tooltip("destroy");
});
},
options: {
'container': 'body',
'delay': { 'show': 1000, 'hide': 100 },
'animation': 'true'
}
};
});
我的申请绑定
define(['jquery', 'bootstrap', 'appVM', 'knockout', 'domReady!'],
function(jquery, bootstrap, appVM, ko) {
var vm = new appVM();
ko.applyBindings(vm);
});
解决方法:
将customBindings添加到调用ko.applyBindings的模块中的依赖项列表中
define(['jquery', 'bootstrap', 'appVM', 'knockout', 'customBindings', 'domReady!'],
function(jquery, bootstrap, appVM, ko) {
var vm = new appVM();
ko.applyBindings(vm);
});
内容总结
以上是互联网集市为您收集整理的javascript – 使用RequireJS敲除自定义引导程序绑定错误全部内容,希望文章能够帮你解决javascript – 使用RequireJS敲除自定义引导程序绑定错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。