问题标签 [ng-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 投票
3 回答
2258 浏览

angular - 在 angular2 中的延迟加载模块之间共享一个外部模块

我的应用程序的组件使用重量级的外部包(ag-grid,大约 1MB),它作为 angular2 模块(AgGridModule)提供。我只想在需要使用它的组件时才加载这个包,所以我的ContentModule和它的所有子模块都是延迟加载的。整个结构如下所示:

在此处输入图像描述

但是,当我AgGridModule同时导入Submodule1andSubmodule3时,它最终被包含在编译的 JS 中两次,使 1.chunk.js 和 3.chunk.js 都变大了。我尝试将其导入ContentModule,但子模块无法识别其中包含的组件AgGridModule,即使我将它们列exportsContentModule.

有没有办法在延迟加载的模块之间共享一个模块,或者将导入模块的某些组件暴露给延迟加载的子模块?

UPD:创建一个共享模块并将其导入子模块没有帮助,仍然有两个大约 1MB 的块: 在此处输入图像描述

UPD2:我通过将 Submodule1 和 Submodule3 合并到一个模块中暂时解决了这个问题。

0 投票
1 回答
447 浏览

angular - Angular 2:如何重用通用代码供其他应用程序使用?

需要有关如何在 Angular 应用程序中重用通用代码的建议。

我们开始使用 angular2 开发一个应用程序以满足某些特定需求,但后来意识到更多应用程序将跟进并尝试在其他应用程序中重用所有或一个通用服务和组件。

为了解决这个问题,我们决定将通用代码移动到一个单独的独立应用程序中,并为这些通用组件创建 ngModules,这些组件应该可供其他应用程序使用。这是正确的做法吗?如果是,如何在我的应用程序中使用这些服务?如果没有,将通用模块导入多个应用程序的最佳方法是什么?

请建议

0 投票
1 回答
861 浏览

angular - 如何使 angular2 模块 (ngModule) 可配置

假设我们有一个模块在里面做一些认证工作。

我想在将模块添加到项目时设置一些变量。

我已经看到路由模块与 function 做了类似的事情forRoot(routes)

所以我尝试了同样的方法,但感觉不正确。

我的身份验证模块(应该是可配置的)

AuthMode 只是一个enum持有值,用于比较稍后在AuthenticationGuard.

app.module.ts添加这样的模块:

像这样AuthenticationGuard注入authModeby 值:

当使用带有路由和canActivate属性的警卫时,这可以正常工作。但是一旦我将它注入到其他一些服务(在另一个模块中),我就会得到这个错误:

错误:NgModule 'AuthenticationModule' 的提供程序无效 - 只允许提供 Provider 和 Type 的实例,得到:[?undefined?, ...] at SyntaxError.ZoneAwareError

所以我的基本问题是:

  • 这是如何使 ngModule可配置的方式吗
  • 什么可以解决上述问题?

使用 Angular 2 和 angular-cli (beta 25) 构建

0 投票
1 回答
2598 浏览

angular - Angular 2 中 app.module.ts 中的 Providers 数组

这可能只是一个微不足道的问题,但我需要澄清这些疑问。

我正在按照教程https://angular.io/docs/ts/latest/tutorial/toh-pt5.html进行操作,但它突然卡住了我。

在我的hero.component.js 中

我有

这有看起来像由missed reference of ./hero.service

但该文件已经是app.module.ts Providers Array.

那为什么我们需要在文件中import { HeroService } from './hero.service';再次导入以消除错误hero.componnet.ts

@NgModule 不是为了摆脱对我们所有指令、组件、管道等的重复导入,正如本博客所指出的那样:

https://scotch.io/bar-talk/getting-to-know-angular-2s-module-ngmodule?

0 投票
2 回答
4669 浏览

angular - 在 Ionic 2 应用程序中使用 Angular 2 路由器有意义吗?

我们已经尝试将我们的 Angular 2 应用程序(由我们的朋友编写,因此我们可能不知道所有细节)迁移到 Ionic 2。但是,我们还没有设法使它工作,因此下面有问题。

  1. Angular 2 路由器可以在 Ionic 2 中工作吗?
  2. 在 Ionic 2 应用程序中使用 Angular 2 路由器是否有意义,或者我们应该直接使用替代方案,例如DeepLinker

编辑:我不确定当前状态是什么,但我在这里读到:

«Angular 路由器目前正在进行大量开发和重构。因此,Angular 的路由器目前在 Ionic 中被禁用。»

  1. 在 code/metadata/build-script/中哪里package.json是激活路由器的入口点?我们在 NgModule 中有路由,但是当我们访问应用程序的主 URL 或子 URL 时,它似乎没有启动:

    /li>
0 投票
1 回答
71 浏览

angular - 核心模块对服务使用的指令混淆

我有一个名为 的核心模块CoreModule,它包含一个名为 的MapManagerService服务、一个FlyToDirective使用.MapManagerServiceElementComponentflyTo

我的AppModule进口CoreModule和使用它的组件,加上有它自己的MapManagerService

阅读 Angular 的核心模块文档,你会注意到:

更准确地说,Angular 在添加 @NgModule.providers 中列出的项目之前会累积所有导入的提供程序。此顺序确保我们显式添加到 AppModule 提供程序的任何内容优先于导入模块的提供程序。

但是,FlyToDirective仍然使用导入CoreModule的 's MapManagerService,我的文档有误吗?

我认为应该使用的服务是AppModulesMapManagerService而不是CoreModules

任何帮助将不胜感激,谢谢。

0 投票
0 回答
903 浏览

angular - 无法绑定到“valueToPass”,因为它不是“app-departments”的已知属性

我对 Angular2 项目有疑问。
我有两个组件,部门组件和完整布局组件。
我正在尝试使用Input().

full-layout.component.ts

full-layout.component.html

Departments.component.ts

app.module.ts

但我收到以下错误:

无法绑定到“valueToPass”,因为它不是“app-departments”的已知属性。

  • 如果 'app-departments' 是一个 Angular 组件并且它有 'valueToPass' 输入,那么验证它是这个模块的一部分。
  • 如果“app-departments”是一个 Web 组件,则将“CUSTOM_ELEMENTS_SCHEMA”添加到该组件的“@NgModule.schemas”以禁止显示此消息。("cked)">

我该如何解决这个问题?

0 投票
2 回答
1125 浏览

angular - 错误:模板解析错误:“选择器”不是已知元素。如何从另一个模块导入组件

如何从另一个模块导入组件?

项目结构:

地址组件在users.module.ts中导出列表,其选择器在app.component.ts的模板中有效,但在篮子.component.ts中无效

0 投票
0 回答
31 浏览

javascript - 在模块的工厂方法中创建的共享对象的更新不会在 Angular JS 的另一个模块中更新

您好,我是 Angular JS 的初学者,现在我陷入了困境。我做了两个模块

菜单画布

现在我在Menu模块的工厂方法中声明了一个对象,以使其可从Canvas模块中使用。

我的代码如下;

现在我有一个控制器来更新obj的属性值。

现在,当我创建Canvas模块时,我正在添加Menu模块的依赖项

现在的问题是,即使在我从Menu模块的clickOnMenu方法更新typeSelected值之后, typeSelected的值在Canvas模块和Canvas模块中也没有更新;

给出输出null

我试图解释每一个细节。你能告诉我我在哪里做错了吗?

0 投票
0 回答
1815 浏览

javascript - 将 JavaScript 导入转换为数组?

我有一个 NPM 包,我需要为其加载大部分模块。我可以像这样执行导入语句:

import * as primeng from 'primeng/primeng';

但是在我的@NgModule Angular 声明中,我需要明确列出导入部分中的每个元素:

有什么方法可以代替使用类似primeng.keys()(不起作用)的东西到我的 NgModule 的导入部分?