我正在使用Angular 4和Angular CLI,我可以用下面的命令创建一个新组件。

E:\HiddenWords>ng generate component plainsight

但我需要在plainsight内生成一个子组件。有办法用Angular CLI来实现吗?


当前回答

打开一个终端窗口,导航到Angular项目的根目录。创建文件夹

运行如下命令在指定文件夹中生成新组件:

ng generate component <folderName>/<componentName>

例如,如果你想在名为“components”的文件夹中创建一个名为“myComponent”的新组件,命令将是:

ng generate component components/myComponent

其他回答

假设你想在一个模块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 component plainsight/some-name.component.ts

如果你觉得更舒服的话,也可以手动试试。

ng g组件plainsight/some-name在我们使用它时创建了一个新目录。

最终输出将是:

plainsight/some-name/some-name.component.ts

为了避免这种情况,使用平面选项ng g component plainsight/some-name——flat,它将生成文件而不创建新文件夹

plainsight/some-name.component.ts

更短的代码来生成组件:ng g c component-name 指定它的位置:ng g c specific-folder/component-name

额外的信息 更短的代码生成指令:ng g d directive-name 指定它的位置:ng g d specific-folder/directive-name

Ng g c组件名称

用于指定自定义位置:ng g c specific-folder/component-name

在这里,component-name将在specific-folder中创建。

类似的方法可以用于生成其他组件,如指令、管道、服务、类、保护、接口、枚举、模块等。