如何在控制器外部将模块发送到导入的ES6 Classe

时间:2019-03-19 13:19:07

标签: node.js symfony webpack bundle

你好,我在symfony上使用webpack。 我已经使用module.exports这样导入了一些ES6类:

module.exports = class Exemple{
 constructor(arg1)
}

我需要使用我之前定义的模块来调用require,包括此类在内的类,而无需在控制器中调用该模块。 就像这样:

Template.js


Module.exports = class Template{
Routing.generate(****)
}

index.js


import Routing from '../../../../vendor/friendsofsymfony/jsrouting-bundle/Resources/public/js/router.min.js';
Routing.setRoutingData(routes);
require('../templateManager.js'),(Routing)

;

如何在不使用Controller的情况下将路由传递给我的班级以使用它

2 个答案:

答案 0 :(得分:0)

Node.js仅将变量导出一次。因此,您可以初始化一些内容,然后将其导出。您将在任何地方都获得相同的价值。 对于您的示例,您可以设置您的Routing实例,然后将其导出,并在其他地方使用。

// routing.js
import Routing from '<snip>/router.min.js';

Routing.setRoutingData(routes);
export default Routing;

// Elsewhere
import Routing from './routing';
// Routing is now your pre-initialised instance of Routing

class Template {
    Routing.generate(****)
}

export default Template;

答案 1 :(得分:0)

谢谢您的回答乔伊。有了您,我得到以下错误:

在.wb / wb_template.js中找不到

导出'默认'

这是我的代码:

wb_template.js


 import Routing from '../../../../vendor/friendsofsymfony/jsrouting-bundle/Resources/public/js/router.min.js';
Routing.setRoutingData(routes);
module.exports = Routing;

Template.js


上课:

import Routing from './wb/wb_template.js';

... 进入课堂:

Routing.generate('my_route');