我开始使用angular-cli,我已经阅读了很多关于我想做什么的答案…没有成功,所以我来到这里。

是否有一种方法可以为新模块创建组件?

例如:ng g module newModule

如何将该组件添加到newModule中??

因为angular-cli的默认行为是把所有新组件放到app.module中。我想选择我的组件将在哪里,这样我就可以创建单独的模块,而不会有我所有的组件在app.module。这是可能的使用angular-cli或我必须手动这样做?


当前回答

我在angular CLI版本8.3中使用过以下命令,它通过生成在特定模块中声明的特定组件来工作。

移动到我们需要生成组件的特定文件夹 cd <组件路径> 调用下面的generate命令 Ng c <component-name>——module=<module-name>

例子

 `ng g c login --module= app`

其他回答

一种常见的模式是创建带有路由、惰性加载模块和组件的特性。

路线:myapp.com/feature

app-routing.module.ts

{ path: 'feature', loadChildren: () => import('./my-feature/my-feature.module').then(m => m.MyFeatureModule) },

文件结构:

app   
└───my-feature
│   │   my-feature-routing.module.ts
│   │   my-feature.component.html
│   │   my-feature.component.css
│   │   my-feature.component.spec.ts
│   │   my-feature.component.ts
│   │   my-feature.module.ts

这一切都可以在cli中完成:

ng generate module my-feature --module app.module --route feature

或更短

ng g m my-feature --module app.module --route feature

或者如果你省略了名字,cli会提示你输入。在需要创建多个特性时非常有用

ng g m --module app.module --route feature

Angular 13+ cli

我在模块文件夹下有多个模块

ng g c components/shared/newlayout -m modules/Shared

如果你已经创建了你的组件而没有指向一个模块,你可以通过将它添加到声明中来直接将它添加到你的应用模块中

@NgModule({
    declarations: [

    FileManagerDetailsComponent <---this is ur page component

你可以使用ng generate Module <模块名>来生成一个Module。 然后使用此命令生成与该模块相关的组件,ng generate component <组件名称>——module=<模块名称>

根据Angular文档,为特定模块创建组件的方法是:

ng g component <directory name>/<component name>

"目录名" = CLI生成特性模块的目录

例子:-

ng generate component customer-dashboard/CustomerDashboard

这将在customer-dashboard文件夹中为新组件生成一个文件夹,并使用CustomerDashboardComponent更新特性模块