Answers:
要将组件创建为模块的一部分,您应该
ng g module newModule
生成一个模块, cd newModule
将目录更改为newModule
文件夹ng g component newComponent
创建一个组件作为模块的子代。更新:Angular 9
现在,生成组件时所处的文件夹都没有关系。
ng g module NewMoudle
生成模块。ng g component new-module/new-component
创建NewComponent。注意:当Angular CLI看到new-module / new-component时,它将理解并转换大小写以匹配new-module-> NewModule和new-component-> NewComponent。一开始它可能会造成混乱,所以简单的方法是将#2中的名称与模块和组件的文件夹名称进行匹配。
--module
选项指定模块:ng g component <your component> --module=<your module name>
ng g component nameComponent --module=app.module.ts
--dry-run
的是,看看是否会受到影响,这是一个很好的理智检查
ng g component path/to/myComponent --module=app.module.ts --dry-run
是非常有用的命令;只是要确保您的组件是在正确的目录中创建的。
不确定在撰写本文时Alexander Ciesielski的答案是否正确,但我可以证实这不再起作用。运行Angular CLI在项目中的哪个目录都没有关系。如果您输入
ng g component newComponent
它将生成一个组件并将其导入到app.module.ts文件中
使用CLI自动将其导入另一个模块的唯一方法是通过指定
ng g component moduleName/newComponent
其中moduleName是您已经在项目中定义的模块。如果moduleName不存在,它将把组件放在moduleName / newComponent目录中,但仍将其导入到app.module中。
ng g module newModule
. ng g component new-module/newComponent
根据他的说法,应该是new-module而不是newModule
mkdir
一个文件夹,然后在新创建的文件夹中运行组件newComponent。
ng g component moduleName/newComponent -m moduleName
ng generate module {modComName}
1)创建了文件夹2)在同名文件夹内创建了模块文件;该命令ng generate component {modComName}
实际上是1)在同名文件夹内创建了一个组件文件2)修改了模块以导入该组件
ng
将导入添加到数组的末尾;但是您可能想要:“配置中的路由顺序很重要,这是设计使然。”
我没有找到一个答案,该答案显示了如何使用cli在顶级模块文件夹中生成组件,并且还没有使组件自动添加模块的声明集合。
要创建模块,请运行以下命令:
ng g module foo
要在foo模块文件夹中创建组件并将其添加到foo.module.ts的声明集合中,请运行以下命令:
ng g component foo/fooList --module=foo.module.ts
cli会像下面这样搭建模块和组件:
-编辑新版本的cli角度行为不同。1.5.5不需要模块文件名,因此带有v1.5.5的命令应为
ng g component foo/fooList --module=foo
对于Angular v4及更高版本,只需使用:
ng g c componentName -m ModuleName
Specified module does not exist
模块存在时引发错误
user-settings.module.ts
并且要添加组件,public-info
则命令将为:ng g c PublicInfo -m user-settings
这对我有用:
1 --> ng g module new-module
2 --> ng g c new-module/component-test --module=new-module/new-module.module.ts
如果要生成没有目录的组件,请使用--flat
标志。
ng g m modules/media
这将生成一个称为media
内部modules
文件夹的模块。
ng g c modules/media/picPick --module=modules/media/media.module.ts
该命令的第一部分ng g c modules/media/picPick
将生成一个组件文件夹,该文件夹称为picPick
内部modules/media
文件夹,其中包含我们的新media
模块。
第二部分将新picPick
组件在media
模块中声明,方法是将其导入模块文件中,并将其附加declarations
到此模块的数组中。
首先生成模块:
ng g m moduleName --routing
这将创建一个moduleName文件夹,然后导航到module文件夹
cd moduleName
然后生成组件:
ng g c componentName --module=moduleName.module.ts --flat
使用--flat不能在模块文件夹内创建子文件夹
使用以下简单命令:
ng g c users/userlist
users
:您的模块名称。
userlist
:您的组件名称。
首先运行ng g module newModule
。然后跑ng g component newModule/newModule --flat
一种常见的模式是使用路由,延迟加载的模块和组件来创建要素。
路线: 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 CLI将组件添加到Angular 4应用
要将新的Angular 4组件添加到应用程序,请使用command ng g component componentName
。执行此命令后,Angular CLI component-name
在下添加一个文件夹src\app
。同样,相同的引用也会src\app\app.module.ts
自动添加到文件中。
组件应具有@Component
装饰器功能,后跟class
需要装饰的功能export
。的@Component
装饰函数接受的元数据。
使用Angular CLI将组件添加到Angular 4应用程序的特定文件夹
要将新组件添加到特定文件夹,请使用以下命令 ng g component folderName/componentName
我使用此特定命令在模块内部生成组件。
ng g c <module-directory-name>/<component-name>
该命令将生成模块本地的组件。或者您可以先通过键入更改目录。
cd <module-directory-name>
然后创建组件。
ng g c <component-name>
注意:<>中包含的代码代表用户特定的名称。
1.-照常创建功能模块。
ng generate module dirlevel1/module-name
2.-您可以在--module中指定项目的ROOT PATH(仅在--module中,(/)根指向您的PROJECT ROOT,而 不是SYSTEM ROOT !!!)
ng generate component dirlevel1/component-name --module /src/app/dirlevel1/module-name.module.ts
真实的例子:
ng generate module stripe/payment-methods-list
ng generate component stripe/payment-methods-list --module=/src/app/stripe/payment-methods-list/payment-methods-list.module.ts
输出:
CREATE src/app/stripe/payment-methods-list/payment-methods-list.component.scss (0 bytes)
CREATE src/app/stripe/payment-methods-list/payment-methods-list.component.html (39 bytes)
CREATE src/app/stripe/payment-methods-list/payment-methods-list.component.spec.ts (768 bytes)
CREATE src/app/stripe/payment-methods-list/payment-methods-list.component.ts (322 bytes)
UPDATE src/app/stripe/payment-methods-list/payment-methods-list.module.ts (311 bytes)
[OK] Generated component!
使用Angular CLI测试:9.1.4
ng g c componentName --module=path-to-your-module-from-src-folder
例:
ng g c testComponent --module=/src/app/home/test-component/test-component.module
Basic:
ng g module chat
ng g service chat/chat -m chat
ng g component chat/chat-dialog -m chat
In chat.module.ts:
exports: [ChatDialogComponent],
providers: [ChatService]
In app.module.ts:
imports: [
BrowserModule,
ChatModule
]
Now in app.component.html:
<chat-dialog></chat-dialog>
LAZY LOADING:
ng g module pages --module app.module --route pages
CREATE src/app/pages/pages-routing.module.ts (340 bytes)
CREATE src/app/pages/pages.module.ts (342 bytes)
CREATE src/app/pages/pages.component.css (0 bytes)
CREATE src/app/pages/pages.component.html (20 bytes)
CREATE src/app/pages/pages.component.spec.ts (621 bytes)
CREATE src/app/pages/pages.component.ts (271 bytes)
UPDATE src/app/app-routing.module.ts (8611 bytes)
ng g module pages/forms --module pages/pages.module --route forms
CREATE src/app/forms/forms-routing.module.ts (340 bytes)
CREATE src/app/forms/forms.module.ts (342 bytes)
CREATE src/app/forms/forms.component.css (0 bytes)
CREATE src/app/forms/forms.component.html (20 bytes)
CREATE src/app/forms/forms.component.spec.ts (621 bytes)
CREATE src/app/forms/forms.component.ts (271 bytes)
UPDATE src/app/pages/pages-routing.module.ts (437 bytes)
ng g component moduleName/componentName
。