一周总结

人工智能
• 阅读 1553

本周遇到的问题,在这里说明一下解决方法.

1.select选择框默认选中

在写编辑的时候,再写教师列表下拉框时,和所选教师并没有自动选中,猜想虽然属性值都一样,但因为是两个不同的对象所致.

<nz-select [nzMaxMultipleCount]="5" style="width: 100%" nzMode="multiple" nzPlaceHolder="Please select" formControlName="teacherList">
            <nz-option *ngFor="let teacher of teacherList" [nzLabel]="teacher.name" [nzValue]="teacher"></nz-option>
          </nz-select>

将value值改成teacher.Id后,成功的选中了:

//把teacherList改成teacherId的集合
<nz-select [nzMaxMultipleCount]="5" style="width: 100%" nzMode="multiple" nzPlaceHolder="Please select" formControlName="teacherList">
            <nz-option *ngFor="let teacher of teacherList" [nzLabel]="teacher.name" [nzValue]="teacher.teacherId"></nz-option>
          </nz-select>

一周总结
但是这样太麻烦了,要重复的将teacherId集合和teacher集合来回转换.
本来像按照java一样重写方法使根据id相比判断相等,没找着,之后去看nz-select的官方文档时,发现了一个[compareWith]属性,传入一个对象比较的方法,就可以根据定义的对象比较方法了.

<nz-select [nzMaxMultipleCount]="5" style="width: 100%" nzMode="multiple" nzPlaceHolder="Please select" formControlName="teacherList" [compareWith]="getCompareTeacherEqual">
            <nz-option *ngFor="let teacher of teacherList" [nzLabel]="teacher.name" [nzValue]="teacher"></nz-option>
          </nz-select>

2.注入课程类别

因为课程类别在很多地方用到,为了方便维护,就统一写一个值提供商,注册在主模块,方便使用时将它注入.
定义课程类别:

export const COURSE_TYPE = [
    {name: '选修课', value: 0},
    {name: '公共课', value: 1},
    {name: '必修课', value: 2}
];

注册到主模块:

 providers: [
        {provide: 'COURSE_TYPE', useValue: COURSE_TYPE}
    ]

因为注册的令牌是字符串,注入器不能根据类型自动注入,所以使用时使用@Inject装饰器手动注入:

@Inject('COURSE_TYPE') public courseType

总结

感觉需要学习的还很多,继续努力把

点赞
收藏
评论区
推荐文章
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
C#去边框以及无边框窗体移动
1.去边框 :1)选中要去除边框的窗体,按F4调出窗体属性。2)在属性框中找到FormBorderStyle选择none。!(https://oscimg.oschina.net/oscnet/d92e6d43421d62c26dd7d1ae2859ce0396c.png)2.去掉边框后实现对窗口程序的拖动1)双击窗体,进入程序设
Stella981 Stella981
3年前
Photoshop
1.保存的时候,选择保存为web和设备所用格式按住shift,点击你想要保存的切片,选中的边框会变黄,再点击“存储”在接下来的框的底部,点击选择“选中的切片”2.PS如何删除所有切片呢?如果文件里面有很多切片,需要全部删除,最快捷的操作是这样的:执行“视图——清除切片”,这样可以快速删除所有切片。3.li:lastofty
Stella981 Stella981
3年前
Django (二)使用 JQuery、Ajax
一、作业内容1、班级表的操作,包括增加、编辑、删除。要求(1)增加、编辑,弹出对话框;(2)这些操作用JQuery、Ajax实现。2、学生表的操作,包括增加、编辑、删除。要求(1)增加、编辑,弹出对话框;(2)这些操作用Jquery、Ajax实现。3、教师表的操作,包括增加、编辑、删除。要求(1)增加、编辑,弹出对话框;(2)这些操作用Jq
Stella981 Stella981
3年前
Framework7 + Angular 开发问题解决汇总
本篇主要汇总一下使用Framework7Angular开发中遇到的一些难点及我的解决方法,以后再遇到会在这里继续更新。一、页面表格按需加载情况描述:默认加载10条,在用户上拉页面是再进行下一页的内容加载。解决方法:利用Framework7的无限滚动。1、页面:<tbodyid"orderContent"
Easter79 Easter79
3年前
SpringMvc接受特殊符号参数被转义
WEB开发时,在前端通过get/post方法传递参数的时候 如果实参附带特殊符号,后端接收到的值中特殊符号就会被转义例如该请求: http://localhost:10001/demo/index.do?name张三(1)注:中文()不会出现此种情况后台就收到的实际name值为:  张三&40;1&41;&40;其实为h
Stella981 Stella981
3年前
Markdown语法
Markdown基本语法\TOC\优点:1、因为是纯文本,所以只要支持Markdown的地方都能获得一样的编辑效果,可以让作者摆脱排版的困扰,专心写作。2、操作简单。比如:word编辑时标记个标题,先选中内容,再点击导航栏的标题按钮,选择几级标题。要三个步骤。而Markdown只需要在标题内容前加即可缺点:1、需要记一
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
3年前
PowerDesigner列名、注释内容互换
在用PowerDesigner时,常常在NAME或Comment中写中文在Code中写英文,Name只会显示给我们看,Code会使用在代码中,但Comment中的文字会保存到数据库TABLE的Description中,有时候我们写好了Name再写一次Comment很麻烦,以下两段代码就可以解决这个问题。在PowerDesigner中PowerDesig
王灵官 王灵官
6个月前
ai2024/2023/2022图像描摹是灰色的按不了,如何解决
AI图像描摹功能呈灰色并无法点击,通常是由于图形不是整体、处于锁定状态或实时描摹时选择了灰度、黑白或默认值所致。ai图像描摹功能使用方法:以下是解决方法:1.检查图形是否为整体:确保您尝试描摹的图形是一个完整的对象,而不是分散的部分。如果图形是由多个部分组