我正在使用Angular 4和Angular CLI,我可以用下面的命令创建一个新组件。
E:\HiddenWords>ng generate component plainsight
但我需要在plainsight内生成一个子组件。有办法用Angular CLI来实现吗?
我正在使用Angular 4和Angular CLI,我可以用下面的命令创建一个新组件。
E:\HiddenWords>ng generate component plainsight
但我需要在plainsight内生成一个子组件。有办法用Angular CLI来实现吗?
当前回答
假设你想在一个模块Box中创建一个组件Container,模块已经创建好了,并且存在于它自己的文件夹src/app/ Box中。
您可以这样做——当被要求提供组件名称时,提供组件的路径和组件名称。
ng g c -m box
? What name would you like to use for the component? box/Container
CREATE src/app/box/container/container.component.scss (0 bytes)
CREATE src/app/box/container/container.component.html (24 bytes)
CREATE src/app/box/container/container.component.spec.ts (647 bytes)
CREATE src/app/box/container/container.component.ts (288 bytes)
UPDATE src/app/box/box.module.ts (286 bytes)
其他回答
首先创建一个组件,你需要使用:-
Ng g c组件名 通过使用上述命令,新组件将创建在一个文件夹 (componentname)您上面指定的。
但是如果你需要在另一个组件中或在特定的文件夹中创建一个组件:-
的 g c 组件名称/新组件名称
上面的选项不适合我,因为与在终端中创建目录或文件不同,当CLI生成一个组件时,它默认将路径src/app添加到您输入的路径中。
如果我从主应用文件夹中生成组件像这样(错误的方式)
ng g c ./src/app/child/grandchild
生成的组件是这样的:
src/app/src/app/child/grandchild.component.ts
所以我只需要打字
ng g c child/grandchild
希望这对大家有所帮助
ng g组件plainsight/some-name在我们使用它时创建了一个新目录。
最终输出将是:
plainsight/some-name/some-name.component.ts
为了避免这种情况,使用平面选项ng g component plainsight/some-name——flat,它将生成文件而不创建新文件夹
plainsight/some-name.component.ts
2021进一步加快IDE插件的使用
如果你想进一步加快这个通常的过程,并避免花费你时间的常见错误,你可以尝试使用visual studio代码插件。
例如,我使用Angular-Schematics,我避免使用终端。你可以用鼠标选择调用ng cli。
使用自定义目录时需要使用——dryRun
您可以通过ng命令传递您的自定义目录路径。
我的伙伴
但是有可能您拼写错误了路径,或者创建了新的文件夹,或者目标目录更改了。因此,dryRun非常有用。它显示了将如何影响更改的输出。
在验证结果之后,您可以运行不带-d的相同命令来进行更改。
——dryRun = true |假 当为true时,运行并报告活动而不写入结果。 默认值:假 别名:- d
官方医生:- https://angular.io/cli/generate