问题标签 [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 投票
1 回答
1756 浏览

angular - Angular 2 架构 - 跨模块共享服务的地方

我已经阅读了一些 Angular 2 项目架构,但它们不是我的情况。

我的问题是在哪里放置跨模块使用的共享服务。

我的项目有多个模块,例如:admin moduleuser module.

这是这个结构:

app |admin | |- some admin components | |- admin.module |user | |- some user components | |- shared | |- user.service | |- user.module

问题是:我想在管理模块的某些组件中检索用户信息。因此,我将用户服务导入管理模块并将其放置在管理模块提供程序中。

我认为这不是一个好习惯。

我发现了这个:http: //jasonwatmore.com/post/2016/08/16/angular-2-jwt-authentication-example-tutorial 但我不知道这是否是一个好习惯。我应该放置user.serviceapp/_services常用的地方吗?我应该创建一个 services.module 来初始化 user.service,然后将服务模块导入其他模块吗?

app |_services | |- user.service |admin | |- some admin components | |- admin.module - import and set user.service to provider |user | |- some user components | |- user.module - import and set user.service to provider `

0 投票
1 回答
663 浏览

angular - Angular 2 应用程序结构/核心模块和第三方库

我试图找到一种构建 Angular 2 应用程序的好方法。Angular 2 风格指南推荐创建一个核心模块。如果我理解正确,核心模块的目标是收集一次性类和组件并保持根模块纤细。还有写的是我应该将资产所需的所有模块导入核心模块。

对于需要包含在方法 forRoot() 中的第三方库(如 NgBootstrap 或 angular2-notifications),我有点困惑。通常只应在根模块中调用 forRoot() 方法。我应该在根模块还是核心模块中包含这些模块?

在下面的示例中,我需要对 angular2-notifications 进行一些配置。为了让我的根模块保持苗条,我在核心模块中导入了 SimpleNotifications。

  • 这是正确的方法吗?为了使应用程序工作,我仍然需要在应用程序模块中导入 SimpleNotificationsModule.forRoot()。
  • 为什么我需要在核心模块中再次导入 SimpleNotificationsModule。它不应该由应用程序模块提供。我认为感谢 forRoot() 他们的核心模块使用与应用程序模块相同的导入模块?
  • 如果是,我应该在核心模块中导入 SimpleNotifications 吗?我真的应该在那里调用 forRoot() 方法吗?

应用模块


应用组件


核心模块


通知组件

0 投票
1 回答
2354 浏览

angular - 无法确定类 ManagersService i 中的 Angular 2 错误

尝试使用 ng build -prod 构建时出现以下错误

我有 AppModule、AppCommonModule 和 CustomModuleA。ManagersService 在 AppCommonModule 中。CustomModuleA 有一个使用 AppCommonModule 的 ManagersComponent(该组件使用 ManagersService)的路由。AppCommonModule 在 AppModule 和 CustomModuleA 中都被导入

我已将该服务添加到 AppCommonModule 提供程序。我不明白我在这里缺少什么。

注意:使用 ng serve 这就像一个魅力。没有错误。

这是属于 AppCommonModule 的 ManagersComponent

这是 AppCommonModule

这是 CustomModuleA

这是 CustomAModuleRouting

0 投票
2 回答
43 浏览

angular - Angular (2+) 中的模块应该是一个使用 angular-cli 创建的应用程序?

我想将登录/注册工作流程分离到一个独立的模块中。到目前为止,我创建了模块 ( ng g module login-module),并且我想向其中添加 Facebook 和 Google SDK。

问题是,主模块(AppModule)负责依赖项(package.json),我也想隔离登录/注册工作流程的依赖项。

这意味着我LoginModule本身应该是一个 Angular 应用程序(使用创建ng new login-module)?

0 投票
0 回答
69 浏览

angular-meteor - angular2-meteor 功能模块导入错误:未捕获类型错误:无法读取未定义 extractStyleUrls 的属性“替换”

将模块导入主 app.module 时创建了 angular2 功能模块,出现以下错误 modules.js?hash=83df0dc…:35050 Uncaught TypeError: Cannot read property 'replace' of undefinedextractStyleUrls @ modules.js?hash=83df0dc…:35050(anonymous function) @ modules.js?hash=83df0dc…:38274DirectiveNormalizer.normalizeStylesheet @ modules.js?hash=83df0dc…:38273DirectiveNormalizer.normalizeLoadedTemplate @ modules.js?hash=83df0dc…:38203DirectiveNormalizer.normalizeTemplateSync @ modules.js?hash=83df0dc…:38178DirectiveNormalizer.normalizeTemplate @ modules.js?hash=83df0dc…:38155CompileMetadataResolver._loadDirectiveMetadata @ modules.js?hash=83df0dc…:42474(anonymous function) @ modules.js?hash=83df0dc…:42650CompileMetadataResolver.loadNgModuleDirectiveAndPipeMetadata @ modules.js?hash=83df0dc…:42649(anonymous function) @ modules.js?hash=83df0dc…:51875JitCompiler._loadModules @ modules.js?hash=83df0dc…:51874JitCompiler._compileModuleAndComponents @ modules.js?hash=83df0dc…:51829JitCompiler.compileModuleAsync @ modules.js?hash=83df0dc…:51795PlatformRef_._bootstrapModuleWithZone @ modules.js?hash=83df0dc…:61199PlatformRef_.bootstrapModule @ modules.js?hash=83df0dc…:61174(anonymous function) @ main.ts:10maybeReady @ meteor.js?hash=e3f53db…:809loadingCompleted @ meteor.js?hash=e3f53db…:821

我是 Angular 2 和流星的新手,请帮助我。

0 投票
2 回答
619 浏览

angular - 使用 Angular 2+ forRoot 模式将回调传递给模块

我创建了一个名为的 Angular 模块DataModule,其中包含用于通过令牌安全的 HTTP API 访问我的后端的服务。401 Unauthorized关于 HTTP 访问控制错误,例如403 Forbidden我希望能够重定向到/login或尝试刷新令牌等。

我想在 Ionic 应用程序中重新使用它DataModule,所以我不希望与标准@angular/router RouterModule或其他任何东西有任何耦合。

目前,我在导入时通过 forRoot 方法传入一些原始DataModuleAppModule

我需要onError回调才能调用router.navigate('/login')或类似的功能,但由于这是一个简单的配置对象,我认为router现阶段无法注入。

我正在寻找一种方法来传递这样的东西,并且我已经审查了其他几个流行的 ng 项目,例如ngx-translate,angularitics2并且ngx-restangular它们都传递了似乎然后由组件返回的提供程序。这是通过传入实现包中保存的接口的 AuthException 服务或类似服务来实现我所追求的方法DataModule吗?

更新:

我最终从我提到的项目中获得了这个想法,即我DataModule有一个默认的错误处理服务,基本上什么都不做。然后,我在 forRoot 中注入一个特定于应用程序的更好的错误处理类,然后在提供程序中使用它:

ApiServiceFactory的参考:

我还必须使用 anInjectionToken来提供我的配置对象作为工厂的依赖项:

在我的主应用程序中,我执行以下操作:

如果这种方法存在任何潜在问题,很高兴听到任何人的意见。我希望我应该能够在 Ionic 应用程序中使用这个模块,如下所示:

0 投票
1 回答
384 浏览

angular - Angular 2(4) 中的模块

我一直在阅读 Angular 2 项目的种子模板,并且有一个关于何时在较大模块中包含模块与组件的问题。我知道建议为每个功能创建模块,但很难决定如何构建。

我有一个项目,其中有一个公共和管理部分(管理员被包裹在警卫中)。每个部分都有一些不同的功能,但它们共享相同的基础模型(获取项目、创建项目等)。我的问题是,在知道某些组件需要保护的情况下,构建它的最佳方法是什么?我是否有一个 AppModule,其下方有一个 Public 和 AdminModule(受保护)(具有引用共享模块中的模型的组件)以及每个功能的模块?还是我有一个 AppModule,下面有所有功能模块并直接保护每个组件?我想这个问题被问了很多,或者我问错了地方,所以任何关于在哪里/做什么的方向都会受到赞赏。

AppModule 供参考

0 投票
1 回答
1478 浏览

angular2-services - 如何在angular2中的两个模块之间共享服务

在我的应用程序中,我有两个不同的模块 (@NgModule) 独立运行,现在我希望它们应该相互通信并共享数据。这两个模块是延迟加载的。如何将模块 1 中的服务更改反映到模块 2

0 投票
2 回答
3040 浏览

angular - 路由和模块

我的应用程序中有以下路由配置:

admin.module.ts

还有问题:

我期望我的应用程序路由会做什么:

我不知道为什么,但是如果我输入 /users,应用程序会呈现 UserComponent,这不是我想要的行为。

我希望只能从 /admin/users 访问 UserComponent。

有人可以解释我为什么吗?

0 投票
1 回答
3779 浏览

node.js - npm run 开始工作,而 ng serve 不工作

我尝试ng serve在 Linux 机器上运行 angular 2 应用程序。它不工作。但我尝试了npm run start命令。它工作正常。ng serve尝试命令时收到以下消息。

我也在项目文件夹中尝试这个命令。

我的 package.json 文件如下

我试过了ng generate module [name]。它也不起作用给出相同的上述消息。这可能是什么原因?