javascript - knockout 没有定义? require js 加载了什么吗?

标签 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.ko 也没有定义。控制台中没有错误,关于 requirejs 接受: Uncaught ReferenceError :ko未定义

问题:为什么没有加载任何内容?我做错了什么吗?

最佳答案

window.ko 正确地未定义,因为您正在使用 RequireJs 加载 Knockout,在这种情况下 Knockout 会检测到这一点,并且不会将自身附加到全局对象。

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

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

因此,在您的情况下,订单是通过您的 _librariesToLoad 声明的,因此 ko 应该是第四个:

require(_librariesToLoad, function(jqueryUri, jqueryCookies, lodash, ko){
    console.log(ko);
});

演示 JSFiddle .

关于javascript - knockout 没有定义? require js 加载了什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36524267/

相关文章:

javascript - 如何隐藏隐藏字段的标签

javascript - 如何在 d3 中为气泡图创建图例?传说没有出现

javascript - 如何将 knockout.js 与 CMS 结合使用?

knockout.js - SQL Server 2019 主数据服务数字过滤

javascript - 使用 knockout.js 将 Flash 新元素添加到 dom 中的数组

javascript - 让 div 通过其父项的顶部溢出它的一半

javascript - meteor :输入一些输入值后重新计算辅助值

javascript - 将某些数据从一个对象抓取到另一个对象

javascript - 为什么我得到一个 "Uncaught ReferenceError: $ is not defined (anonymous function)"

knockout.js - 在 TypeScript 中 knockout observableArray