https://ng-alain.com/cli/generate/zh

https://ng-alain.com/docs/new-page/zh

默认情况下,创建模块 trade,创建在目录 src/app/routes 下面。

% ng g ng-alain:module trade
? Which service injectors would you like to use? Ignore generation of Service
files
CREATE src/app/routes/trade/trade-routing.module.ts (249 bytes)
CREATE src/app/routes/trade/trade.module.ts (319 bytes)
UPDATE src/app/routes/routes-routing.module.ts (2837 bytes)
%

可以通过配置改变

默认情况下所有的代码统一存放于 app/routes 下面,可通过添加 ng-alain.json 配置文件来指向其他目录,例如:

{
"$schema": "./node_modules/ng-alain/schema.json",
"projects": {
// 表示 ng-alain 项目都存放于 `app/pages` 下
"my-project": {
"routesRoot": "app/pages"
}
}
}

注意,这里的 my-project 是项目名称,表示针对该项目使用此配置。执行效果如下:

my-project % ng g ng-alain:module trade
? Which service injectors would you like to use? Ignore generation of Service
files
CREATE src/app/pages/trade/trade-routing.module.ts (249 bytes)
CREATE src/app/pages/trade/trade.module.ts (319 bytes)
my-project %

可以看到新创建的模块保存到 src/app/pages 目录下。

创建列表页面

-m 表示创建在指定的模块中。

my-project % ng g ng-alain:list list -m=trade
? Which service injectors would you like to use? Ignore generation of Service
files
CREATE src/app/pages/trade/list/list.component.html (352 bytes)
CREATE src/app/pages/trade/list/list.component.spec.ts (657 bytes)
CREATE src/app/pages/trade/list/list.component.ts (1278 bytes)
UPDATE src/app/pages/trade/trade.module.ts (400 bytes)
UPDATE src/app/pages/trade/trade-routing.module.ts (359 bytes)
(base) whao@bjmacbook11 my-project %

新建列表页的模版,路径为:src/app/pages/trade/list/list.component.html

<page-header [action]="phActionTpl">
<ng-template #phActionTpl>
<button (click)="add()" nz-button nzType="primary">新建</button>
</ng-template>
</page-header>
<nz-card>
<sf mode="search" [schema]="searchSchema" (formSubmit)="st.reset($event)" (formReset)="st.reset($event)"></sf>
<st #st [data]="url" [columns]="columns"></st>
</nz-card>

代码内容路径为:src/app/pages/trade/list/list.component.ts

import { Component, OnInit, ViewChild } from '@angular/core';
import { STColumn, STComponent } from '@delon/abc/st';
import { SFSchema } from '@delon/form';
import { ModalHelper, _HttpClient } from '@delon/theme'; @Component({
selector: 'app-trade-list',
templateUrl: './list.component.html',
})
export class TradeListComponent implements OnInit {
url = `/user`;
searchSchema: SFSchema = {
properties: {
no: {
type: 'string',
title: '编号'
}
}
};
@ViewChild('st') private readonly st!: STComponent;
columns: STColumn[] = [
{ title: '编号', index: 'no' },
{ title: '调用次数', type: 'number', index: 'callNo' },
{ title: '头像', type: 'img', width: '50px', index: 'avatar' },
{ title: '时间', type: 'date', index: 'updatedAt' },
{
title: '',
buttons: [
// { text: '查看', click: (item: any) => `/form/${item.id}` },
// { text: '编辑', type: 'static', component: FormEditComponent, click: 'reload' },
]
}
]; constructor(private http: _HttpClient, private modal: ModalHelper) { } ngOnInit(): void { } add(): void {
// this.modal
// .createStatic(FormEditComponent, { i: { id: 0 } })
// .subscribe(() => this.st.reload());
} }

创建增、删、改、查页面

my-project % ng g ng-alain:curd curd -m=trade
? Which service injectors would you like to use? Ignore generation of Service
files
CREATE src/app/pages/trade/curd/curd.component.html (352 bytes)
CREATE src/app/pages/trade/curd/curd.component.spec.ts (657 bytes)
CREATE src/app/pages/trade/curd/curd.component.ts (1278 bytes)
CREATE src/app/pages/trade/curd/edit/edit.component.html (493 bytes)
CREATE src/app/pages/trade/curd/edit/edit.component.spec.ts (681 bytes)
CREATE src/app/pages/trade/curd/edit/edit.component.ts (1599 bytes)
CREATE src/app/pages/trade/curd/view/view.component.html (586 bytes)
CREATE src/app/pages/trade/curd/view/view.component.spec.ts (681 bytes)
CREATE src/app/pages/trade/curd/view/view.component.ts (658 bytes)
UPDATE src/app/pages/trade/trade.module.ts (672 bytes)
UPDATE src/app/pages/trade/trade-routing.module.ts (470 bytes)
(base) whao@bjmacbook11 my-project %

ng-alain 创建页面的更多相关文章

  1. 【Android】纯代码创建页面布局(含异步加载图片)

    开发环境:macOS 10.12 + Android Studio 2.2,MinSDK Android 5.1 先看看总体效果 本示例是基于Fragment进行的,直接上代码: [界面结构] 在 F ...

  2. SharePoint 2013 入门教程之创建页面布局及页面

    在SharePoint的使用过程中,页面布局和页面时很重要的两个概念,主要用于数据个性化展示,下面,我们简单介绍一下SharePoint的页面布局和页面的个性化. 一. SharePoint页面模型概 ...

  3. jquery动态创建页面元素

    jquery用$()方法动态创建一个页面元素,例如: var $div=$("<div title='动态创建页面元素'>欢迎创建一个新的div</div>" ...

  4. 自学jQueryMobile之简单创建页面

    首先简答介绍一下JQueryMobile吧,我觉得用一句话来讲就是可以 "写更少的代码,做更多的事情" : 它可以通过一个灵活及简单的方式来布局网页,且兼容所有移动设备.这也是我自 ...

  5. JqueryMobile基础之创建页面

    首先简答介绍一下JQueryMobile吧,我觉得用一句话来讲就是可以 "写更少的代码,做更多的事情" : 它可以通过一个灵活及简单的方式来布局网页,且兼容所有移动设备.这也是我自 ...

  6. Vue小案例 之 商品管理------创建页面与部分数据

    logo的路径: 页面的初始布局: 初始的HTML: <div id="container"> <!--logo title--> <div clas ...

  7. delphi 使用工控机控件 iThreadTimes 出现问题, 导致主程序创建页面的时候, 阻塞消息, 不能正常执行。

    delphi  使用工控机控件 iThreadTimes 出现问题, 导致主程序创建页面的时候, 阻塞消息, 不能正常执行. 使用这个控件需要小心 function Tfrm_MainIPC.Open ...

  8. 纸壳CMS(ZKEACMS)体验升级,快速创建页面,直接在页面中修改内容

    关于纸壳CMS 纸壳CMS又名 ZKEACMS Core 是ZKEACMS的 .net core 版本,可运行在 .net core 1.1 平台上.是一个开源的CMS. 纸壳CMS对于 ZKEACM ...

  9. Ionic01 简单介绍、环境搭建、创建项目、项目结构、创建组件、创建页面、子页面跳转

    1 Ionic 基本介绍 Ionic 是一款基于 Angular.Cordova 的强大的 HTML5 移动应用开发框架 , 可以快速创建一个跨平台的移动应用.可以快速开发移动 App.移动端 WEB ...

  10. ionic小白的学习路之目录结构分析、创建组件、创建页面、页面跳转

    一. 目录结构分析 hooks:编译cordova 时自定义的脚本命令,方便整合到我们的编译系统和版本控制系统中. node_modules :node 各类依赖包. resources :andro ...

随机推荐

  1. Diffusion系列 - DDPM 公式推导 + 代码 -(二)

    Denoising Diffusion Probabilistic Model(DDPM)原理 1. 生成模型对比 记 真实图片为 \(x_0\),噪声图片为 \(x_t\),噪声变量 \(z\sim ...

  2. 元素偏移量offset 与 style 区别 ?

    offset 可以得到任意样式表中的样式值offset 系列获得的数值是没有单位的数字offsetWidth 包含padding+border+width offsetWidth 等属性是只读属性,只 ...

  3. ORM的性能争议

    1 二次封装---业务的执行,步骤多一些 2 映射的过程---必然从类到Sql语句变化---类---Sql语句---必然会有大量的反 射(损耗性能) 3 Sql语句僵化---数据库执行有性能损耗 部分 ...

  4. 使用doccano标注NER数据详细教程

    使用doccano标注NER数据详细教程 说明: 首次发表日期:2024-10-12 参考资料: https://github.com/zjunlp/DeepKE/blob/main/README_T ...

  5. go frame资源管理打包失败

    最近有个需求,需要使用golang做一个小工具,然后我就想既然是小工具,那就把前后端放在一个二进制文件中.恰好使用的项目架构是go frame,它已经提供了这样的能力,但是没想到碰到了一鼻子灰... ...

  6. 自定义log4j2的PatternLayout参数

    1.添加类 package com.yuanian.micro.config; import org.apache.logging.log4j.core.LogEvent; import org.ap ...

  7. 云原生周刊:CNCF 宣布 KubeEdge 毕业

    云原生周刊:CNCF 宣布 KubeEdge 毕业 开源项目推荐 Watchtower Watchtower 这个项目能够自动监测并更新正在运行的 Docker 容器.它会定期检查并拉取 Docker ...

  8. 怎样在Linux 环境 (红帽 rhel 7.3) 安装 Python 3

    自己装的虚拟机(红帽 7),默认安装的python2.7,更新为python 3.8  自己做个记录,方便日后查看 注意:红帽的yum 需要注册才能使用,必须要替换yum,替换方法请参见:怎样替换 r ...

  9. Next.js 与 Node.js 全栈应用开发:API设计、数据库连接、身份验证 | 2024版

    书接上回,到目前为止,您的应用程序只有一个主页.让我们学习如何使用布局和页面创建更多路线. 在本章之中我们需要讨论: dashboard使用文件系统路由创建路由. 了解创建新路线段时文件夹和文件的作用 ...

  10. Oracle-表分析和索引分析解读

    概述当表没有做分析的时候,Oracle 会使用动态采样来收集统计信息. 获取准确的段对象(表,表分区,索引等)的分析数据,是CBO存在的基石,CBO的机制就是收集尽可能多的对象信息和系统信息,通过对这 ...