我可以覆盖JSPM包中的方法吗?

时间:2016-02-08 18:24:36

标签: javascript backbone.js marionette systemjs jspm

我正在迁移一个项目以使用JSPM& SystemJS。在我的应用程序中,我重写了Backbone Marionette渲染方法以使用Mustache模板:

Marionette.Renderer.render = function (template, data) {
     return Mustache.render(template, { Model: data }, partials);
}

这在旧世界中很简单 - 只需在将marionette js和mustache js添加到页面后使用上面的代码。当我把它作为模块加载时,我无法看到如何覆盖它。

import * as Marionette from "backbone.marionette";

1 个答案:

答案 0 :(得分:2)

如果你的问题只是加载订单,你可以创建一个新的(即自定义)木偶模块,它依赖于 backbone.marionette 胡子和伸展牵线木偶。像

这样的东西
import Marionette from 'backbone.marionette';
import Mustache from 'moustache';

Marionette.Renderer.render = function (template, data) {
 return Mustache.render(template, { Model: data }, partials);
}

export default Marionette;

之后,您需要在SystemJS配置上映射自定义模块:

System.config({
   'map': {
      'custom-marionette': 'path/to/source/custom-marionette',
   ...
   }
}

然后,您就可以在应用程序中导入自定义模块:

import Marionette from 'custom-marionette';