所以请考虑以下事项:
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
所以问题:为什么没有加载?我做错了吗?
答案 0 :(得分:1)
$bname = $_POST['brand_button'];
未正确定义,因为您正在使用RequireJs加载Knockout,在这种情况下,Knockout检测到此并且不会将自身附加到全局对象。
window.ko
未定义,因为在模块定义函数中您没有指定console.log(ko)
参数。
如果要访问模块中的依赖项,则需要为每个依赖项定义一个正确顺序的参数。
因此,在您的情况下,订单是与ko
一起宣布的,因此_librariesToLoad
应该是第4个:
ko
演示JSFiddle。