我有一个Angular 2应用程序(RC7),最初只是一个组件,但现在正在项目中以各种不同的方式使用(有时完全无关)。
因此,使用单个 NgModule 引导所有组件似乎是一个非常糟糕的想法,这会导致很多冗余代码。我正在努力找到一种方法来拥有多个模块(Module A将包含Component A,Module B将具有Component B等),并仍然允许在单个页面上引导多个A2应用程序。
实际上,我想要实现的是:
第1页引导Module A - 可以工作。
第2页引导Module B - 可以工作。
第3页引导Module A和Module B - 无法工作。 index.html
AppOne和AppTwo的模块只是简单地引导相关组件(componentOne和componentTwo)。但是,两者不会同时在同一页上呈现。我在控制台中没有错误,但无论在systemjs.config.js文件中列出的哪个包都是唯一加载的。
因此,使用单个 NgModule 引导所有组件似乎是一个非常糟糕的想法,这会导致很多冗余代码。我正在努力找到一种方法来拥有多个模块(Module A将包含Component A,Module B将具有Component B等),并仍然允许在单个页面上引导多个A2应用程序。
实际上,我想要实现的是:
第1页引导Module A - 可以工作。
第2页引导Module B - 可以工作。
第3页引导Module A和Module B - 无法工作。 index.html
<script src="/angular2/node_modules/zone.js/dist/zone.js"></script>
<script src="/angular2/node_modules/reflect-metadata/Reflect.js"></script>
<script src="/angular2/node_modules/systemjs/dist/system.src.js"></script>
<script src="/angular2/systemjs.config.js"></script>
<script type="text/javascript">
System.import('appOne').catch(function(err){ console.error(err); });
System.import('appTwo').catch(function(err){ console.error(err); });
</script>
systemjs.config.js
(function (global) {
System.config({
paths: {
'npm:': '/angular2/node_modules/'
},
map: {
appOne: '/angular2/',
appTwo: '/angular2/',
},
packages: {
appOne: {
main: './appOne.main.js',
defaultExtension: 'js'
},
appTwo: {
main: './appTwo.main.js',
defaultExtension: 'js'
},
}
});
})(this);
AppOne和AppTwo的模块只是简单地引导相关组件(componentOne和componentTwo)。但是,两者不会同时在同一页上呈现。我在控制台中没有错误,但无论在systemjs.config.js文件中列出的哪个包都是唯一加载的。
有人能看出为什么它可能不起作用吗? 或者也许可以推荐另一种组织我的模块的方式。 我不想有一个包含所有组件、服务等的父模块——这似乎违背了Angular 2嵌套组件树的初衷,并最终指数级影响页面加载时间。
提前致谢。