关于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 相关文章推荐
javascript 数组学习资料收集
Apr 11 Javascript
点击隐藏页面左栏或右栏实现js代码
Apr 01 Javascript
推荐25个超炫的jQuery网格插件
Nov 28 Javascript
JavaScript常用的弹出广告及背投广告实现方法
Feb 06 Javascript
使用bat打开多个cmd窗口执行gulp、node
Feb 17 Javascript
利用express启动一个server服务的方法
Sep 17 Javascript
vue-ajax小封装实例
Sep 18 Javascript
原生js实现简单的焦点图效果实例
Dec 14 Javascript
vue中的模态对话框组件实现过程
May 01 Javascript
详解JavaScript 为什么要有 Symbol 类型?
Apr 03 Javascript
微信小程序动态显示项目倒计时
Jun 20 Javascript
使用js实现单链解决前端队列问题的方法
Feb 03 Javascript
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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
PHP写MySQL数据 实现代码
2009/06/15 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
phalcon框架使用指南
2016/02/23 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
javascript简单实现命名空间效果
2014/03/06 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
究竟什么是Node.js?Node.js有什么好处?
2015/05/29 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
[10:53]2018DOTA2国际邀请赛寻真——EG
2018/08/11 DOTA
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
python 日期排序的实例代码
2019/07/11 Python
python openpyxl使用方法详解
2019/07/18 Python
CSS3中的常用选择器使用示例整理
2016/06/13 HTML / CSS
使用HTML5和CSS3制作一个模态框的示例
2018/03/07 HTML / CSS
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
什么是.net的Remoting技术
2016/07/08 面试题
毕业生求职信的经典写法
2014/01/31 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
2015羊年春节慰问信
2015/02/14 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang