当前位置: 首页 > news >正文

ABP-Book Store Application中文讲解 - Part 9: Authors: User Interface

ABP-Book Store Application中文讲解 - Part 9: Authors: User Interface

TBD

 1. 汇总

ABP-Book Store Application中文讲解-汇总-CSDN博客

2. 前一章 

ABP-Book Store Application中文讲解 - Part 8: Authors: Application Layer-CSDN博客

项目之间的引用关系。

​​

目录

1. 利用Angular Cli创建authors

 2. 更改AuthorModule

3. 定义菜单-Menu Definition

3.1. 更改path为/book-store的requiredPolicy

 3.2 新增path为/authors的菜单

3.3 route.provider.ts完整代码

4. ABP generate service proxy

5. 提示信息本地化

6. Author列表和新增、编辑、删除

 7. 继续学习


 

1. 利用Angular Cli创建authors

右击app文件夹,选择Open in Integrated Terminal打开Terminal页面,输入以下命令,敲回车:

ng generate module author --module app --routing --route authors 

​命令结束后,生成文件结构如下图所示: 

 2. 更改AuthorModule

/src/app/author/author.module.ts

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';import { AuthorRoutingModule } from './author-routing.module';
import { AuthorComponent } from './author.component';
import { NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';// new added
import { SharedModule } from '../shared/shared.module';// new added@NgModule({declarations: [AuthorComponent],imports: [CommonModule,SharedModule,// new addedAuthorRoutingModule,NgbDatepickerModule// new added]
})
export class AuthorModule { }

3. 定义菜单-Menu Definition

src/app/route.provider.ts

3.1. 更改path为/book-store的requiredPolicy

      {path: '/book-store',name: '::Menu:BookStore',iconClass: 'fas fa-book',order: 2,layout: eLayoutType.application,requiredPolicy: 'BookStore.Books || BookStore.Authors',// 新增加|| BookStore.Authors}

 3.2 新增path为/authors的菜单

      {path: '/authors',name: '::Menu:Authors',// iconClass: 'fas fa-user',parentName: '::Menu:BookStore',order: 4,layout: eLayoutType.application,requiredPolicy: 'BookStore.Authors',// new added}

3.3 route.provider.ts完整代码

import { RoutesService, eLayoutType } from '@abp/ng.core';
import { APP_INITIALIZER } from '@angular/core';export const APP_ROUTE_PROVIDER = [{ provide: APP_INITIALIZER, useFactory: configureRoutes, deps: [RoutesService], multi: true },
];function configureRoutes(routesService: RoutesService) {return () => {routesService.add([{path: '/',name: '::Menu:Home',iconClass: 'fas fa-home',order: 1,layout: eLayoutType.application,},{path: '/book-store',name: '::Menu:BookStore',iconClass: 'fas fa-book',order: 2,layout: eLayoutType.application,requiredPolicy: 'BookStore.Books || BookStore.Authors',// 新增加|| BookStore.Authors},{path: '/books',name: '::Menu:Books',// iconClass: 'fas fa-user',parentName: '::Menu:BookStore',order: 3,layout: eLayoutType.application,requiredPolicy: 'BookStore.Books',// new added},{path: '/authors',name: '::Menu:Authors',// iconClass: 'fas fa-user',parentName: '::Menu:BookStore',order: 4,layout: eLayoutType.application,requiredPolicy: 'BookStore.Authors',// new added}]);};
}

4. ABP generate service proxy

前置条件是需要保证Acme.BookStore.HttpApi.Host启动。

在angular根目录,然后ctrl+`新打开一个Terminal console,运行以下命令:

abp generate-proxy -t ng

生成完成后的目录结构如下图所示: 

5. 提示信息本地化

打开Acme.BookStore.Domain.Shared,找到Localization/BookStore文件夹,编辑en.json和zh-Hans.json。添加内容如下:

en.json

    "Menu:Authors": "Authors","Authors": "Authors","AuthorDeletionConfirmationMessage": "Are you sure to delete the author '{0}'?","BirthDate": "Birth date","NewAuthor": "New author","EditAuthor": "Edit author"

zh-Hans.json

    "Menu:Authors": "作者管理","Authors": "作者","AuthorDeletionConfirmationMessage": "你确定要删除作者 '{0}'?","BirthDate": "生日","NewAuthor": "新建作者","EditAuthor": "编辑作者"

6. Author列表和新增、编辑、删除

/src/app/author/author.component.ts

此处新增、编辑界面可以参考Book那一章进行分开设计,即生成create-update-author component,然后动过NgbModal的open事件控制create-update-author的显示。

本篇文章不再介绍单独create-update-author component的方式,大家可以用这一个进行练手。

如果忘记怎么实现了,可以参考:(推荐使用这种方式)ABP-Book Store Application中文讲解 - Part 3: Creating, Updating and Deleting Books-CSDN博客

如果想要放在同一个组件里面,可参考ABP官网:

Web Application Development Tutorial - Part 9: Authors: User Interface | ABP.IO Documentation

 7. 继续学习

ABP-Book Store Application中文讲解 - Part 10: Book to Author Relation-CSDN博客

相关文章:

  • 3D旋转动态爱心 - Python创意代码
  • 缓存控制HTTP标头设置为“无缓存、无存储、必须重新验证”
  • AtCoder-abc407_e解析
  • Nginx+Tomcat负载均衡与动静分离架构
  • 13、企业应付管理(AP)全流程解析:从发票登记到付款完成
  • 【定时器】定时器存在的内存泄露问题
  • 机器学习14-迁移学习
  • HDFS分布式存储 zookeeper
  • 半导体制冷片(Thermoelectric Cooler,TEC)
  • C++查找算法全解析:从基础到高级应用
  • CppCon 2015 学习:Bridging Languages Cross-Platform
  • 每日八股文6.4补
  • Fluence推出“Pointless计划”:五种方式参与RWA算力资产新时代
  • 更新 Docker 容器中的某一个文件
  • spring-ai入门
  • springboot ErrorController getErrorPath() 版本变迁
  • 【Spark征服之路-2.1-安装部署Spark(一)】
  • 电力系统时间同步系统之二
  • 振动力学:欧拉-伯努利梁的弯曲振动(考虑轴向力作用)
  • 供应商管理系统
  • scratch编程网站/手机怎么搭建网站
  • 淘宝网发布网站建设/万网注册域名查询官方网站
  • 扬州网站制作/个人网站制作多少钱
  • 长沙建站模板大全/线上推广是什么意思
  • 太原网站建设-中国互联/免费发布推广信息的平台
  • 联通的网站是谁做的/如何实施网站推广