关于angular 8.1使用过程中的一些记录


Posted in Javascript onNovember 25, 2020

说起来已经使用了大概一年半的angular,大概已经渐渐习惯了这个前端框架吧,但是具体的原理和底层的代码都没有仔细的看过。

前阵子以前做的一个项目有了新的需求,而且比较麻烦,讲讲做的过程中遇到的一些问题

首先是勾选状态的保持问题

关于angular 8.1使用过程中的一些记录

在模板中思考了很久,用了各种方法,修改传入值,页码改变以后勾选状态就是会有奇怪的问题,比如在代码里明明把选中的给去掉了,但是页面上还是勾选状态,最后折腾来折腾去,发觉操作的对象不对:页面上的是模板里面的list,就是listpagemodel.list,而我之前一直在操作传入的list,后面操作对象弄对了,只需要操作listpagemodel.list的状态就可以控制页面上的数据。

所以上面给我的经验就是一定要明白页面上展示的数据具体是由哪个对象控制的,对象找对了,控制起来就简单,对象没找对,忙活再久也是白干。

第二个就是自己创建的组件问题

关于angular 8.1使用过程中的一些记录

sl-upload是我自己封装的一个组件

关于angular 8.1使用过程中的一些记录

这是组件内部的代码,很简单,就是包含了nz的一个上传组件,还有一些数据的处理

关于angular 8.1使用过程中的一些记录

比如上传之前的判断大小和类型,还有上传成功的提示之类的。

之所以自己写这部分,是因为nzzorro的组件自己虽然有提供大小控制和上传文件的类型控制,但是限制了以后选中保持以后不会有任何提示。所以就自己封装一下,加上了提示。

其中遇到的一个不解的问题就是双向绑定的问题

一开始我单纯的以为只要给[fileList]加上小括号就行

[(fileList)]这样就变成了双向绑定,实际上并没有,小括号加上去以后毫无作用,组件内部只是接收到了这个fileList

关于angular 8.1使用过程中的一些记录

后续的操作,父组件(严格来讲其实包了三层,是祖孙组件了)里面是拿不到子组件对fileList的修改的,因为只是单纯的传入了这个值。现在要拿子组件对fileList修改后的值,就需要加上输出,也就是@Output

关于angular 8.1使用过程中的一些记录

下图的那一行代码

this.fileListChange.emit(this.fileList)

关于angular 8.1使用过程中的一些记录

就是输出用的,只有改变值的时候加上了这一行代码,才算是完成了输出

才让父组件中[(fileList)]中的小括号有了意义,不然加不加小括号都没影响。

这样才可以在父组件中拿到经过子组件修改后的fileList的值了。

到此这篇关于angular 8.1使用过程中的一些记录的文章就介绍到这了,更多相关angular 8.1使用记录内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
网页设计常用的一些技巧
Dec 22 Javascript
jQuery筛选器children()案例详解(图文)
Feb 17 Javascript
javascript使用location.search的示例
Nov 05 Javascript
js获取当月最后一天实例代码
Nov 19 Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 Javascript
JQ技术实现注册页面带有校验密码强度
Jul 27 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
Mar 07 Javascript
js Date()日期函数浏览器兼容问题解决方法
Sep 12 Javascript
关于Vue单页面骨架屏实践记录
Dec 13 Javascript
在 Angular中 使用 Lodash 的方法
Feb 11 Javascript
浅析node应用的timing-attack安全漏洞
Feb 28 Javascript
jQuery使用动画队列自定义动画操作示例
Jun 16 jQuery
Vue组件生命周期运行原理解析
Nov 25 #Vue.js
vue element-ul实现展开和收起功能的实例代码
Nov 25 #Vue.js
在Vue中使用mockjs代码实例
Nov 25 #Vue.js
javascript实现左右缓动动画函数
Nov 25 #Javascript
JavaScript缓动动画函数的封装方法
Nov 25 #Javascript
js实现缓动动画
Nov 25 #Javascript
JavaScript实现缓动动画
Nov 25 #Javascript
You might like
简单介绍PHP的责任链编程模式
2015/08/11 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
2016/11/01 PHP
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
2015/10/14 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
Python安装第三方库的3种方法
2015/06/21 Python
python线程、进程和协程详解
2016/07/19 Python
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
python实现大文件分割与合并
2019/07/22 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
django API 中接口的互相调用实例
2020/04/01 Python
如何在python中执行另一个py文件
2020/04/30 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
在阿联酋购买翻新手机和平板电脑:Teckzu
2021/02/12 全球购物
校园餐饮创业计划书
2014/01/10 职场文书
班班通项目实施方案
2014/02/25 职场文书
人事专员岗位职责范本
2014/03/04 职场文书
房屋产权证明书
2015/06/19 职场文书
2015团员个人年度总结
2015/11/24 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫