ng-alain 创建页面
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 创建页面的更多相关文章
- 【Android】纯代码创建页面布局(含异步加载图片)
开发环境:macOS 10.12 + Android Studio 2.2,MinSDK Android 5.1 先看看总体效果 本示例是基于Fragment进行的,直接上代码: [界面结构] 在 F ...
- SharePoint 2013 入门教程之创建页面布局及页面
在SharePoint的使用过程中,页面布局和页面时很重要的两个概念,主要用于数据个性化展示,下面,我们简单介绍一下SharePoint的页面布局和页面的个性化. 一. SharePoint页面模型概 ...
- jquery动态创建页面元素
jquery用$()方法动态创建一个页面元素,例如: var $div=$("<div title='动态创建页面元素'>欢迎创建一个新的div</div>" ...
- 自学jQueryMobile之简单创建页面
首先简答介绍一下JQueryMobile吧,我觉得用一句话来讲就是可以 "写更少的代码,做更多的事情" : 它可以通过一个灵活及简单的方式来布局网页,且兼容所有移动设备.这也是我自 ...
- JqueryMobile基础之创建页面
首先简答介绍一下JQueryMobile吧,我觉得用一句话来讲就是可以 "写更少的代码,做更多的事情" : 它可以通过一个灵活及简单的方式来布局网页,且兼容所有移动设备.这也是我自 ...
- Vue小案例 之 商品管理------创建页面与部分数据
logo的路径: 页面的初始布局: 初始的HTML: <div id="container"> <!--logo title--> <div clas ...
- delphi 使用工控机控件 iThreadTimes 出现问题, 导致主程序创建页面的时候, 阻塞消息, 不能正常执行。
delphi 使用工控机控件 iThreadTimes 出现问题, 导致主程序创建页面的时候, 阻塞消息, 不能正常执行. 使用这个控件需要小心 function Tfrm_MainIPC.Open ...
- 纸壳CMS(ZKEACMS)体验升级,快速创建页面,直接在页面中修改内容
关于纸壳CMS 纸壳CMS又名 ZKEACMS Core 是ZKEACMS的 .net core 版本,可运行在 .net core 1.1 平台上.是一个开源的CMS. 纸壳CMS对于 ZKEACM ...
- Ionic01 简单介绍、环境搭建、创建项目、项目结构、创建组件、创建页面、子页面跳转
1 Ionic 基本介绍 Ionic 是一款基于 Angular.Cordova 的强大的 HTML5 移动应用开发框架 , 可以快速创建一个跨平台的移动应用.可以快速开发移动 App.移动端 WEB ...
- ionic小白的学习路之目录结构分析、创建组件、创建页面、页面跳转
一. 目录结构分析 hooks:编译cordova 时自定义的脚本命令,方便整合到我们的编译系统和版本控制系统中. node_modules :node 各类依赖包. resources :andro ...
随机推荐
- 使用KFold交叉验证方法划分训练集和验证集
在进行深度学习时,为了提高精度,或者为了评估我们模型的优劣,以及如何选择一个更好的模型.这样我们就需要用到交叉验证方法. 我们主要实现如何使用KFold划分训练集和验证集 #coding:utf-8f ...
- CEOI2022
Day1 T1 Abracadabra 题意:给你一个 \(1 \sim n\) 的排列 \(p\),保证 \(n\) 为偶数,我们对它进行足够多次数的洗牌操作,定义一次洗牌为: 考虑取出 \(p_{ ...
- 浅析RocketMQ
SpringBoot引入RocketMQ 快速构建单机RocketMQ https://www.haveyb.com/article/3079 参考这篇文章,快速构建单机RocketMQ 项目引入ja ...
- 锁的分类和JUC
锁的分类 乐观锁.悲观锁 对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改.Java 中,synchroniz ...
- CSS:Transform属性
本文将深入探讨css动画中transform属性,这是一种强大的工具,可以实现元素的旋转.缩放.移动和倾斜等效果.本文将通过详细的解释和实际案例,帮助你掌握transform属性的使用方法来增强你的网 ...
- 洛谷 P1540 [NOIP2010 提高组] 机器翻译
题目概括 给定 N 个整数,和一个容量为 M 的"字典",从头到尾依次翻译,每次翻译先看自家字典,没有的话再看别人的字典并存到自家字典,如果自家字典满了,当前单词的翻译会代替最早进 ...
- 5.4 Linux Vim基本操作
<Vim三种工作模式>一节给大家详细介绍了 Vim 的 3 种工作模式,本节来学习如何使用 Vim 编辑文件. 首先学习如何使用 Vim 打开文件. Vim 打开文件 使用 Vim 打开文 ...
- sqli-labs Less 2-4 攻略
sqli-labs Less 2-4 的解题与Less1思路相同,只在闭合类型上存在少量区别,故直接提供解题过程,不再作详细解释. 对sql注入基本原理尚不了解的可以参考我的上一篇博客基于sqli-l ...
- 大便系统无法使用source的原因及解决方法
debian中shell脚本无法使用source的原因及解决方法 现象: shell脚本中source aaa.sh时提示 source: not found 原因: ls -l `which sh` ...
- CUDA 编程学习 (5)——内存访问性能
1. DRAM 带宽 1.1 DRAM 核心阵列结构 每个 DRAM 核心阵列约有 \(16M\) bits 每个 bits 存储在由一个晶体管组成的微小电容器中 超小型(8x2-bit)DRAM 内 ...