gpt4 book ai didi

javascript - 为什么在使用 Miso 时 _ 未定义?

转载 作者:行者123 更新时间:2023-11-29 10:48:03 26 4
gpt4 key购买 nike

我正在尝试使用 Miso ( http://misoproject.com/dataset/ ),依赖项之一是 underscore.js。我正在使用 require.js,并在控制台中不断收到错误消息:“未捕获的 ReferenceError:_ 未定义。”这是我的 main.js 文件:

require(["jquery", "underscore", "miso"], function($, _, miso) {

$(function() {
var ds = new Miso.Dataset({
url : "/data/ma_region.csv",
delimiter : " ",
});
});

});

有什么想法吗?提前致谢。

最佳答案

Miso 期望在全局范围内使用 _ 下划线。

在 Miso 的代码中:

(function(global, _) {

/* has bunch of stuff using underscore */

}(this, _));

这意味着在最后一部分 (this, _) 中,它没有引用 _ 下划线库,因为它是在 RequireJS 中定义的,这意味着它存在于匿名函数作用域。

所以你需要加载 _ 下划线 when 并将 Miso 包装在一个模块中,例如:

define(['underscore'], function(_) {

/** Miso's code here because Miso is expecting the _ **/

});

对于 Miso 网站上列出的其他依赖项,您需要将其包括在内 http://misoproject.com/dataset/tutorials/quickstart :

Dependencies

If you chose to include the production version without built in dependencies, you may need to include them yourself. Dataset requires the following libraries:

  • LoDash 0.9.0
  • Underscore.math.js (unknown version)
  • Underscore.deferred.js 0.2.0
  • moment.js 1.7.2 (for 'time' data type)

If you are using IE, you will want to include json2.js:

  • json2.js 2011-10-19

或者,我建议使用已经预打包依赖项的 Miso 版本,这样您就不必担心这个问题。

关于javascript - 为什么在使用 Miso 时 _ 未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15772810/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com