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

webpack - 组件不能作为入口组件

以上是我将 entryComponent 指定给模块的代码。这个 SpinnerComponent 也来自一个外部模块,即 ExternalModule。

Webpack 报错:

SpinnerComponent 中的 ERROR 不能用作入口组件。

属于同一模块的组件是否需要出现在 entryComponents 属性列表中?

据我所知,官方定义在出现在 entryComponent 属性之前没有为组件指定这样的先决条件。

0 投票
1 回答
1351 浏览

angular - 我必须在延迟加载的模块中重新导入模块和样式吗?

在 Angular 2+ 中,我懒加载自定义模块(我的应用程序的部分)。当我导航到它的路线时,它会延迟加载,但它没有我的主模块的主题。此外,我发现如果我想要在所述自定义模块中定义的任何组件中的 matbutton 行为,我必须在我的自定义模块中重新导入 MatButtonModule。这似乎是不必要的膨胀。

我是否必须重新导入要在我已经在主应用程序模块中导入的自定义模块中使用的模块?我是否必须将应用程序主题重新导入自定义模块?

0 投票
0 回答
1760 浏览

angular - 带有子路由的 Angular 6 多路由出口

我有导入两个子模块的应用程序模块:PreparationModuleGameModule. 在根路由中,AppModule我有延迟加载的“准备”端点PreparationModuleAppComponent的(引导组件AppModule) html 文件仅包含根路由器出口。PreparationModule有自己的子路由,带有两个子路由,并在 PreparationComponent 中为这些路由命名为路由器出口。

我想要实现的是在路径'/preparation'PreparationComponent上将显示在AppComponent路由器插座中。然后来自的子路由PreparationModule将被延迟加载并显示在命名路由器出口中PreparationComponent,例如路径'/preparation/intro'。在路径“/play”上,我想GameComponent从路由器插座加载。目前没有指定自己的路由。GameModuleAppComponentsGameModule

我在这里做错了什么?我想我用复杂的方式解释了它,但也许代码会告诉你更多。里面没有什么相关的app.component.tspreparation.component.ts只是类声明),所以我跳过了它们。

编辑

我得到的错误是:ERROR Error: Uncaught (in promise): TypeError: undefined is not a function

app.module.ts

app.component.html

<router-outlet></router-outlet>

app.routing.ts

准备模块.ts

准备.component.html

准备路由.ts

0 投票
1 回答
131 浏览

angular - 在 Angular 中似乎不需要导出可声明对象

从关于导出可声明的 Angular NgModule 常见问题解答中,它说“如果你不导出可声明的类,它会保持私有,只对在这个 NgModule 中声明的其他组件可见”,但这似乎不正确。

因为从这个Angular Routes 教程的实时示例中,我仍然可以在所有其他组件中访问HeroListComponent ,例如在AppComponent中、在 CrisisListComponent 中等。 但很明显,在HeroesModule中,我声明了 HeroListComponent

,但我没有导出它。似乎即使我不导出可声明对象(管道、组件、指令),我仍然可以从声明它们的模块外部访问这些可声明对象。那么为什么会这样呢?

下面是我从 HeroesModule 外部访问 HeroListComponent 的方法:(
这个文件是app-routing.module.ts

导航到路径“test”(http://localhost:4200/test)时没有看到任何错误,并且一切正常。

0 投票
1 回答
1600 浏览

angular - ngmodule 模块解析错误,带有意外字符'@'

我已经阅读了https://angular.io/tutorial/toh-pt0上的教程,我目前正在尝试将教程编译到 /public/ 文件夹中并收到错误...

我的 webpack.config.js 很简单

和我的 app.module.ts

如您所见,我尝试使用 babel-loader 并获得模块构建失败:SyntaxError: Unexpected token with the "@"。

我的第一个想法是我缺少一个加载器,但是我尝试了几个加载器,babel 是唯一一个改变了我收到的错误消息但没有解决问题的加载器。

该应用程序使用“ng serve”正确编译,并且他们将 webpack 与标准 angular-cli 应用程序一起使用。

我已经查看了其他几个具有类似问题的问题,其中大多数与 css 或 scss 相关,并且没有使用正确的加载器。我确实相信这是一个加载程序问题,但找不到可以使用的加载程序。

0 投票
0 回答
266 浏览

angular - Angular 库模块传递配置用于 NgModule 装饰器

我创建了一个身份验证 Angular 库项目来抽象我正在使用的提供程序。由于角度库项目不支持环境配置,我正在寻找一种方法让消费应用程序项目能够将配置传递给库项目。我见过人们建议forRoot为库的模块实现一个方法,但我不确定如何在NgModuleAuthentication 模块的装饰器中使用它。例如:

我已经看到人们使用InjectorToken并能够将配置传递给库项目的示例,然后可以将这些配置注入该库的服务和组件等等,但我不明白或不知道是否有办法使用传递到该模块的装饰器中的库模块。

这可能吗?

0 投票
1 回答
419 浏览

angular - Angular2+嵌套模块路由参数为空

我的应用层次结构如下:

  1. 应用程序(根)
    • 模块(模块)
      • 掌握
      • 细节
        • 导航
        • 创建/home(组件)
        • 字段(模块)
          • 细节(组件)
          • 主控(组件)

模块路由.module.ts

modules-detail-routing.module.ts

字段-routing.module.ts

问题
当我重定向到/modules/testModuleName/fields 时,我试图访问在modules-routing.module (testModuleName) 中声明的module_name 参数。但是,当我在字段模块中时,我的路由参数为空。我可以在 create/home 组件中看到参数,但在子模块中看不到。任何帮助,将不胜感激!

0 投票
0 回答
3014 浏览

angular - Angular 6 - 共享模块中的自定义管道未导出

我的 Angular 架构由 3 个模块组成。

  • AppModule(应用程序演示和逻辑所在的位置)
  • CoreModule(包含我访问 API 的服务)
  • SharedModule(包含我的模型、管道、指令等......)

我想在我的 中添加一个新管道SharedModule,所以我创建它,然后将它添加到的装饰器的declarationsandexports字段中。SharedModuleNgModule

然后,在我的 中AppModule,我导入了SharedModule并且应该可以访问我的管道。但是,事情就是这样,我不能。相反,我有以下错误:

未捕获的错误:模板解析错误:找不到管道“排名位置”

有代码:

排名位置.pipe.ts

shared.module.ts

app.module.ts

编辑:添加我的组件代码:

排名.component.ts

排名.component.html

我错过了什么?

0 投票
2 回答
711 浏览

angular - Angular 将组件从模块传递到 App 模块中的另一个模块

我在弄清楚如何将导入的模块中的组件传递到我的 Angular 应用程序中并在我也在我的应用程序中导入的另一个模块中使用它时遇到了问题。

请注意,所有这两个模块都是我创建的模块。

那是我的 app.module.ts :

我想要做的是传递一个组件,让我们说BreadcrumbComponentLayoutModuleDispoModule并且能够在该模块中使用它。

请注意,LayoutModule 和 DispoModule 是依赖 Angular 模块项目,它们使用 ng-packagr 打包并导入到我的应用程序中。

谢谢你。

0 投票
3 回答
732 浏览

javascript - 为什么我们不在 app.module.ts 的装饰器数组中添加 'ngModule'

我正在制作一个有角度的项目,并且也制作了所需的组件和导入的模块。我在这里看到的主要问题......是我们做了两个步骤:

  1. 将组件、服务、管道、模块添加到顶部,添加相应的文件或文件夹位置
  2. 将它们添加到装饰器(组件、管道、模型到声明)、(模块到导入)和(服务到提供者)。

有一个例外。现在,我希望就像' browser-module '(预取)或'forms-module'(手动添加)——在第2步(即装饰器数组)中应该有一个注入或名称添加' ng-模块'。为什么不存在?这是唯一的例外还是还有其他的?在装饰器中添加“ngModule”不应该是一种一致的方式吗?

在此处输入图像描述

注意:代码不是必需的,因为它可以正常工作。问题很简单,如果我们对所有组件、服务、模块、管道、模型和接口使用特定规则,为什么不使用“ngModule”?