下划线,下划线。串不好玩

时间:2014-06-19 17:59:53

标签: javascript ruby-on-rails underscore.js

我有一个rails 4.1.x项目,其中包含以下application.js文件:

//= require jquery
//= require jquery_ujs
//= require jquery.ui.all
//= require turbolinks
//= require showdown
//= require underscore
//= require underscore.string/underscore.string
//= require selectize.js/js/selectize
//= require jquery-bootpag/jquery.bootpag
//= require react
//=require_tree ./helpers
//= require_tree ./react_mixins
//= require_tree ./react_components
//= require backbone
//= require aisis_writer
//= require_tree ./models
//= require_tree ./collections
//= require_tree ./views
//= require_tree ./routers
//= require_tree .
//= require twbs/bootstrap
//= require chosen/chosen.jquery.min

一切都装鳍。现在我可以做 - 从Underscore js库:

var moe = {name: 'moe'};
moe === _.identity(moe);

它有效,但如果我这样做 - 来自Underscore.string库:

_.levenshtein('kitten', 'kittah')

我得到undefined function。我正在阅读:this part of the readme它规定了如何使用下划线,但我不知道我是否必须用铁轨走得那么远。我也在查看this part of the source code,它定义了_s或者它与下划线集成。

考虑到underscore.string是在下划线和所有常规下划线函数工作后加载的 - 可以肯定它存在。那是怎么回事? Bot库已正确加载,当我尝试使用underscore.string函数时,它们除了undefined function之外没有控制台错误。

1 个答案:

答案 0 :(得分:1)

正如自述文件所述,如果您想使用_对象you must mix them in中的Underscore.string函数。在尝试使用_.levenshtein之前添加以下行:

_.mixin(_.string.exports());

或者您可以致电_.str.levenshtein