在主干牵线木偶2.4.4中交换下划线1.8.3 for lodash 4.2.1

时间:2016-02-06 02:07:32

标签: javascript backbone.js underscore.js marionette lodash

这甚至可能吗?继续阅读相互矛盾的报告。

我有一个Marionette应用程序,刚升级到2.4.4。

如果我用lodash代替下划线 - 使用requireJS,

 map: {
  '*': {
    'underscore': 'lodash'
  }
},

//  'underscore':'/resource/vendor/backbone.marionette/underscore',
'lodash':'/resource/vendor/lodash/lodash.min',

我收到以下错误...

Uncaught TypeError: Cannot read property 'vent' of undefined

lodash正在加载,只是牵牛花正在抱怨。

似乎this行上下文466未定义

 463 _proxyMethods: function() {
 464     _.each([ "vent", "commands", "reqres" ], function(system) {
 465       _.each(messageSystems[system], function(method) {
 466         this[system][method] = proxyMethod(this, system, method);
 467       }, this);
 468     }, this);
 469   }

有什么建议吗?

1 个答案:

答案 0 :(得分:8)

对于其他任何看过这个问题的人来说,答案是肯定的。

Lodash 3.10.1没问题,但4.x版本已删除许多功能中的context选项,这会打破Marionette

旧的方式是

    _.each(collection, iteratee, context);

新方法是

_.each(collection, _.bind(iteratee, context));

但到目前为止,使用上面的requireJS设置3.10.1非常好。

因此,在更新Marionette之前,您必须暂停4.x