问题标签 [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.
angular - Angular 2 架构 - 跨模块共享服务的地方
我已经阅读了一些 Angular 2 项目架构,但它们不是我的情况。
我的问题是在哪里放置跨模块使用的共享服务。
我的项目有多个模块,例如:admin module
和user 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.service
到app/_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
`
angular - Angular 2 应用程序结构/核心模块和第三方库
我试图找到一种构建 Angular 2 应用程序的好方法。Angular 2 风格指南推荐创建一个核心模块。如果我理解正确,核心模块的目标是收集一次性类和组件并保持根模块纤细。还有写的是我应该将资产所需的所有模块导入核心模块。
对于需要包含在方法 forRoot() 中的第三方库(如 NgBootstrap 或 angular2-notifications),我有点困惑。通常只应在根模块中调用 forRoot() 方法。我应该在根模块还是核心模块中包含这些模块?
在下面的示例中,我需要对 angular2-notifications 进行一些配置。为了让我的根模块保持苗条,我在核心模块中导入了 SimpleNotifications。
- 这是正确的方法吗?为了使应用程序工作,我仍然需要在应用程序模块中导入 SimpleNotificationsModule.forRoot()。
- 为什么我需要在核心模块中再次导入 SimpleNotificationsModule。它不应该由应用程序模块提供。我认为感谢 forRoot() 他们的核心模块使用与应用程序模块相同的导入模块?
- 如果是,我应该在核心模块中导入 SimpleNotifications 吗?我真的应该在那里调用 forRoot() 方法吗?
应用模块
应用组件
核心模块
通知组件
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
angular - Angular (2+) 中的模块应该是一个使用 angular-cli 创建的应用程序?
我想将登录/注册工作流程分离到一个独立的模块中。到目前为止,我创建了模块 ( ng g module login-module
),并且我想向其中添加 Facebook 和 Google SDK。
问题是,主模块(AppModule
)负责依赖项(package.json
),我也想隔离登录/注册工作流程的依赖项。
这意味着我LoginModule
本身应该是一个 Angular 应用程序(使用创建ng new login-module
)?
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 和流星的新手,请帮助我。
angular - 使用 Angular 2+ forRoot 模式将回调传递给模块
我创建了一个名为的 Angular 模块DataModule
,其中包含用于通过令牌安全的 HTTP API 访问我的后端的服务。401 Unauthorized
关于 HTTP 访问控制错误,例如403 Forbidden
我希望能够重定向到/login
或尝试刷新令牌等。
我想在 Ionic 应用程序中重新使用它DataModule
,所以我不希望与标准@angular/router
RouterModule
或其他任何东西有任何耦合。
目前,我在导入时通过 forRoot 方法传入一些原始DataModule
值AppModule
:
我需要onError
回调才能调用router.navigate('/login')
或类似的功能,但由于这是一个简单的配置对象,我认为router
现阶段无法注入。
我正在寻找一种方法来传递这样的东西,并且我已经审查了其他几个流行的 ng 项目,例如ngx-translate
,angularitics2
并且ngx-restangular
它们都传递了似乎然后由组件返回的提供程序。这是通过传入实现包中保存的接口的 AuthException 服务或类似服务来实现我所追求的方法DataModule
吗?
更新:
我最终从我提到的项目中获得了这个想法,即我DataModule
有一个默认的错误处理服务,基本上什么都不做。然后,我在 forRoot 中注入一个特定于应用程序的更好的错误处理类,然后在提供程序中使用它:
我ApiServiceFactory
的参考:
我还必须使用 anInjectionToken
来提供我的配置对象作为工厂的依赖项:
在我的主应用程序中,我执行以下操作:
如果这种方法存在任何潜在问题,很高兴听到任何人的意见。我希望我应该能够在 Ionic 应用程序中使用这个模块,如下所示:
angular - Angular 2(4) 中的模块
我一直在阅读 Angular 2 项目的种子模板,并且有一个关于何时在较大模块中包含模块与组件的问题。我知道建议为每个功能创建模块,但很难决定如何构建。
我有一个项目,其中有一个公共和管理部分(管理员被包裹在警卫中)。每个部分都有一些不同的功能,但它们共享相同的基础模型(获取项目、创建项目等)。我的问题是,在知道某些组件需要保护的情况下,构建它的最佳方法是什么?我是否有一个 AppModule,其下方有一个 Public 和 AdminModule(受保护)(具有引用共享模块中的模型的组件)以及每个功能的模块?还是我有一个 AppModule,下面有所有功能模块并直接保护每个组件?我想这个问题被问了很多,或者我问错了地方,所以任何关于在哪里/做什么的方向都会受到赞赏。
AppModule 供参考
angular2-services - 如何在angular2中的两个模块之间共享服务
在我的应用程序中,我有两个不同的模块 (@NgModule) 独立运行,现在我希望它们应该相互通信并共享数据。这两个模块是延迟加载的。如何将模块 1 中的服务更改反映到模块 2
angular - 路由和模块
我的应用程序中有以下路由配置:
admin.module.ts
还有问题:
我期望我的应用程序路由会做什么:
我不知道为什么,但是如果我输入 /users,应用程序会呈现 UserComponent,这不是我想要的行为。
我希望只能从 /admin/users 访问 UserComponent。
有人可以解释我为什么吗?
node.js - npm run 开始工作,而 ng serve 不工作
我尝试ng serve
在 Linux 机器上运行 angular 2 应用程序。它不工作。但我尝试了npm run start
命令。它工作正常。ng serve
尝试命令时收到以下消息。
我也在项目文件夹中尝试这个命令。
我的 package.json 文件如下
我试过了ng generate module [name]
。它也不起作用给出相同的上述消息。这可能是什么原因?