淘汰赛没有定义?是否需要js加载任何东西?

时间:2016-04-10 00:13:10

标签: javascript knockout.js

所以请考虑以下事项:

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.korequirejs接受:Uncaught ReferenceError: ko is not defined

方面,控制台中没有错误

所以问题:为什么没有加载?我做错了吗?

1 个答案:

答案 0 :(得分:1)

$bname = $_POST['brand_button'];未正确定义,因为您正在使用RequireJs加载Knockout,在这种情况下,Knockout检测到此并且不会将自身附加到全局对象。

window.ko未定义,因为在模块定义函数中您没有指定console.log(ko)参数。

如果要访问模块中的依赖项,则需要为每个依赖项定义一个正确顺序的参数。

因此,在您的情况下,订单是与ko一起宣布的,因此_librariesToLoad应该是第4个:

ko

演示JSFiddle