在 backbone marionette 2.4.4 中将下划线 1.8.3 换成 lodash 4.2.1

swap underscore 1.8.3 for lodash 4.2.1 in backbone marionette 2.4.4

这可能吗?继续阅读关于此的相互矛盾的报道。

我有一个 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 加载正常,只是 marionette 在抱怨。

466 行的上下文 this 似乎未定义

 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   }

有什么建议吗?

对于其他看到这个的人来说,答案是否定的。

Lodash 3.10.1 很好,但是 4.x 版本从许多函数中删除了 context 选项,这破坏了 Marionette.

旧方法是

    _.each(collection, iteratee, context);

新方法是

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

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

所以在 Marionette 更新之前,您必须推迟 4.x