击倒没有定义?确实需要js加载任何内容
Knockout is not defined? Did require js load anything?
因此考虑以下内容:
addExternalLibrary: function(name, url) {
_externalLibraries[name] = url;
_librariesToLoad.push(name);
},
setUpRequireJS: function() {
define('jquery', [], function() {
return jQuery;
});
requirejs.config({
paths: _externalLibraries,
waitSeconds: 5
});
},
load: function(options) {
this.addExternalLibrary('jqueryUri', 'https://code.jquery.com/ui/1.11.4/jquery-ui.min');
this.addExternalLibrary('jqueryCookies', 'https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min');
this.addExternalLibrary('lodash', 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.8.2/lodash');
this.addExternalLibrary('knockout', 'https://cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min');
this.addExternalLibrary('knockoutValidation', 'https://cdnjs.cloudflare.com/ajax/libs/knockout-validation/2.0.3/knockout.validation.min');
this.setUpRequireJS();
require(_librariesToLoad, function(){
console.log(ko);
});
},
注意到console.log(ko)
??很明显,ko
没有定义,甚至window.ko
控制台中没有错误,关于requirejs
接受:Uncaught ReferenceError: ko is not defined
所以问题:为什么什么都没有加载?我做错什么了吗?
window.ko
未正确定义,因为您正在使用RequireJs加载Knockout,在这种情况下,Knockout检测到这一点,并且不会将自己附加到全局对象。
console.log(ko)
未定义,因为在模块定义函数中没有指定ko
参数。
如果你想访问模块中的依赖项,你需要为每个依赖项定义一个正确顺序的参数。
所以在你的情况下,订单是用你的_librariesToLoad
声明的,所以ko
应该是第四个:
require(_librariesToLoad, function(jqueryUri, jqueryCookies, lodash, ko){
console.log(ko);
});
演示JSFiddle。
相关文章:
- 当脚本由system.js加载时,如何要求('electron')
- 使用JS加载HTML元素
- Mailchimp内联表单验证不适用于JS加载的HTML
- 使用Microsoft Office.js加载项进行自动身份验证
- PHP 图表 js 加载 mysql 和接口
- 节点JS加载JS&ejb文件中的css文件
- 使用springy.js加载多个图形时闪烁画布
- 何时需要JS加载所有模块
- Backbone Js加载部件中的应用程序
- 击倒没有定义?确实需要js加载任何内容
- 使用三个js加载三维模型示例
- Knockout.JS加载顺序问题
- jquery选项卡和js加载内容
- Features.js-加载静态内容
- MongoDB脚本和CSV文件:我可以使用require.js加载jquery.CSV吗
- Ember.js加载模板上的Per-Model Promise状态
- 延迟js加载的最佳方式
- 使用D3.js加载用于可视化的本地数据
- 用angular.js加载更多分页|按钮dos'不要藏起来
- 如何使用队列.js和 D3.js 加载多个文件