问题标签 [angular2-modules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
80497 浏览

angular - 如何作为模块的子模块路由到模块 - Angular 2 RC 5

我正在将我正在开发的应用程序升级到最新的 Angular 2 候选版本。作为这项工作的一部分,我尝试使用 NgModule 规范并将我的应用程序的所有部分迁移到模块。在大多数情况下,除了路由问题之外,这一切都非常顺利。

我的应用程序是作为模块的组合构建的,几个模块作为父模块的子模块粘合在一起。例如,我有一个由通知模块、用户模块和电话模块组成的管理模块(例如)。这些模块的路由应该看起来像......

在路由器的早期版本中,使用“children”很容易做到这一点

在另一个文件中,作为子模块的一部分,我还将定义各个模块路由,即

这一切都很好。在升级到 Modules 的过程中,我将所有内容都移到了各自的路由文件中,所以现在这两个看起来更像这样

完成所有这些后,我有一个导入 userRouting 的 UsersModule,然后是一个导入 adminRoutes 和 UsersModule 的 AdminModule。我的想法是,由于 UsersModule 是 AdminModule 的子模块,因此路由将按照以前的方式工作。不幸的是,事实并非如此,所以我最终得到的用户路线只是

代替

此外,因此,新用户组件不会加载到我的管理组件的路由器出口中,这会影响我的应用程序的样式和导航。

我一辈子都想不出如何将我的 UserModule 的路由引用为我的 AdminModule 的子级。我已经尝试过用旧方法来做这件事,并得到关于两个模块中的路由的错误。显然,由于这是新发布的,围绕其中一些案例的文档有点有限。

任何人都可以提供的任何帮助将不胜感激!

0 投票
1 回答
1186 浏览

angular - Angular2 RC5 跨模块提供程序/扫描

我正在开发一个目前是 Angular RC5 和 Material Design 最新的项目。并不是说最后一部分是相关的。

由于显而易见的原因,我开始创建单独的模块并远离主模块中的所有内容。但是,我需要有在所有模块之间共享的提供程序。F/EI 有一项服务,它最终连接到我们的后端系统。不同模块的 URL 等设置在不同的提供程序上。所有这些服务目前也是一个单独的 git 项目的一部分,因为我也在我们的 iOnic 应用程序和其他前端中使用它们。

那么我将如何去拥有这项服务,它在我为我的项目创建的所有模块中共享它的实例?

我还想创建一个仪表板,显示当前安装/可用模块中的“小部件”。这也取决于用户可以清楚地看到什么。Java 中的类似构造将通过组件扫描/反射来解决。在 Angular 中,我假设我会创建一个全球可用的提供程序,我可以在其中添加要放置的类型,然后在仪表板上可用?

模块的最后一部分可能很棘手,因为一切都是分开的,有人可以分享一些想法吗?它们基本上是 2 个问题,但我相信它们应该以一个非常相似的答案来解决。

编辑:

因此,就我而言,我想了解现有的路线,这与我所说的另一个问题有关,但与此有关。

我想做的是这样的

像这样的模式让我不会在主组件或 w/e 中设置我的服务中的路由。当然,我们可以在首次加载或 w/e 时执行此操作,但感觉不对。

我想其他开发人员也必须做类似的事情,但我现在看不出哪种模式适合这里。

也许已经有这样的钩子可用。我BaseModule不会对这个模块一无所知。我的路线可选地包含某些权限值(这只是一个枚举)。在canActivate钩子上我想检查一下,所以我觉得它应该知道路线,因为我似乎无法在canActivate钩子中获取它并且为每个权限设置它似乎很愚蠢。

0 投票
3 回答
15792 浏览

angular - 模块“AppModule”导入的意外值“MyCustomModule”

我正在尝试将我的 angular2 自定义库之一迁移到 RC.6 + Webpack。我的目录结构是:

dev文件夹中尝试运行应用程序。我引导我的模块:

app.module.ts

现在使用 webpack 我捆绑了我的开发应用程序。

webpack.config.js

但是当我尝试加载应用程序时,我收到一条消息:

我导入的桶文件如下所示:

myCustomLib.js

我还在github 上发现了类似主题的提示,但将其更改为:

没有帮助。我也尝试从src目录导入模块 - 同样的错误。MyCustomModule 应该没问题,因为它以前在 systemJS 上工作得很好。

myCustomLib.module.ts:

知道这个错误的原因是什么吗?我在这里看到了类似的主题,但没有任何答案或提示有帮助。

编辑:为了使示例更简单,我已从 MyCustomModule 中删除了所有内容-同样的问题...

0 投票
1 回答
6675 浏览

javascript - 核心模块和功能模块之间的Angular 2区别

我不明白Angular 2 中corefeature模块之间的区别。据我所知,推荐的模块类型有三种:corefeatureshared

如果一个模块导出了一些声明(组件、指令和管道)并且许多模块将导入这个模块,那么这个模块应该是一个共享模块(在共享目录中)。

如果一个模块导出了一些声明(组件、指令和管道)并且只有根模块会导入这个模块,那么这个模块应该是一个核心模块(在核心目录中)。

功能模块是否相同?只有根模块会导入它们。在示例中,有一个 CoreModule 和一个名为 ContactModule 的功能模块。我看不出它们之间的区别。它们都在根模块中导入。

0 投票
2 回答
8585 浏览

angular - 如何在angular2中使用sharedModule?

我有一个 angular2 组件,我想在多个模块之间共享。

所以我在 sharedModule 下面写了,

然后我将此 sharedModule 添加到多个模块中,如下所示:

app.module.ts

我也类似地将 sharedModule 添加到 generic.module.ts 中,

通用模块.ts

但是当我尝试在 generic.module.ts 的组件中使用通用组件时,我遇到了错误

模块“GenericModule”导入的意外值“未定义”

0 投票
2 回答
19990 浏览

angular - 无法绑定到 FormGroup,因为它不是“form”的已知属性(FormsModule,ReactiveFormsModule 已加载)

我刚刚看到这个问题,但我仍然有同样的错误。我有一个共享模块,我将它导入到我的功能模块中。但我也尝试直接将模块导入我FormsModuleReactiveFormsModule功能模块。

Angular 2.0 最终版。

我的共享模块是:

我的功能模块:

组件:

和观点:

所有路径和导入都是正确的。有任何想法吗?谢谢。

- - - [解决了] - - - -

更改[FormGroup]="loginForm"[formGroup]="loginForm":(

0 投票
3 回答
12628 浏览

angular - Angular 2.0 模块“AppModule”导入的意外值“[object Object]”

当我尝试加载我的 Angular 2.0 应用程序时,出现以下错误:(索引):21 错误:错误:模块“AppModule”导入的意外值“[object Object]”

应用模块

键入启动脚本

如果我从导入中删除“路线”,登录页面会加载但没有任何错误。我怀疑路由中的错误,因为如果我删除 AppModule 中的“路由”,登录页面会正确加载。我尝试了很多更改,但我无法确定问题的原因。任何帮助,将不胜感激。

0 投票
2 回答
6851 浏览

angular - 从 Angular2 模块导出时遇到问题

我是 Angular 2 的初学者,正在尝试了解如何从功能模块中导出类,并将其导入到我的主模块中。

当我尝试在 typescript 中编译它时,我收到以下两个错误:

  • app/app.component.ts(11,21):错误 TS2304:找不到名称“AddService”。

  • app/app.module.ts(4,9):错误 TS2305:模块“C:/angular/app/add/arithmetic.module”没有导出成员“AddService”。

我的树很简单:

有趣的部分如下:

app.module.ts:

app.component.ts

算术模块.ts

添加.service.ts

这真的很令人沮丧,因为

1) 我正在导出 AddService——它被标记为“导出”,并且在 ArithmeticModule 中我使用@NgModule 元数据将其标记为导出。

2) 我正在从我的主模块中导入 [据称] 导出的 AddService 类,因此 AddService 应该是可用的,因为它是从 ArithmeticModule 导出的

如果我直接从组件中导入 AddService,它工作正常,但这不是我想要的:我想从我的主模块导入类,并利用该模块的导出,就像我们对 Angular 的模块所做的那样(例如,BrowserModule 和 FormsModule)。@NgModule 的文档说我们应该能够做到这一点 - 从我的功能模块导入一次,进入我的主模块,然后它可以在整个主模块中使用。

有人可以告诉我我做错了什么吗?还是我误解了应该使用哪些模块?

0 投票
0 回答
331 浏览

angular - 角度 2 导入自定义模块返回错误

我在尝试导入自定义模块时遇到此错误

zone.js:269 未捕获的错误:模块“AppModule”导入的意外值“[object Object]”

这是我的 app.module.ts

这是我要导入的外部文件

我正在使用 Angular Class 的 Angular 2 starter webpack,目前正在运行“webpack”:“2.1.0-beta.22”

0 投票
0 回答
129 浏览

angular - Angular 2 Starter Webpack 在捆绑期间丢失了@NgModule 装饰器

嗨,我写了一个 Angular 2 sdk 来方便访问我们的后端服务。Github

现在我在各种流行的模板上对其进行测试,并且在捆绑过程中angular2-webpack-starter的模板发生了一些奇怪的事情。

它“松动”或无法识别 @NgModule 装饰器并抛出

模块“AppModule”导入的意外值“[object Object]”

有趣的是,sdk 与akveo 的 ng2-admin 一起工作,它建立在 angular2-webpack-starter 之上

下面是一些注释代码片段来说明我的问题

这是自定义模块,它初始化并提供sdk的依赖项。然后在 app.module.ts 中我可以运行

我比较了来自 angular2-webpack-starter 和 ng2-admin 的 webpack 配置文件。它们几乎相同,没有特别弹出。

如果我注释掉@NgModule Decorator,ng2-admin 中会显示相同的错误,因此我怀疑它在捆绑过程中没有加载或丢失。也遵循错误链建议相同

sdk 也适用于 angular-cli beta15。