关于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 相关文章推荐
js中精确计算加法和减法示例
Mar 28 Javascript
jquery xMarquee实现文字水平无缝滚动效果
Apr 29 Javascript
通过jquery 获取URL参数并进行转码
Aug 18 Javascript
javascript解决小数的加减乘除精度丢失的方案
May 31 Javascript
bootstrap table小案例
Oct 21 Javascript
详解JS中的柯里化(currying)
Aug 17 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
Aug 24 Javascript
vue实现新闻展示页的步骤详解
Apr 11 Javascript
JS获取动态添加元素的方法详解
Jul 31 Javascript
layer.confirm()右边按钮实现href的例子
Sep 27 Javascript
vue+elementUI实现简单日历功能
Sep 24 Javascript
React如何使用axios请求数据并把数据渲染到组件
Aug 05 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
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
跟我学习JScript的Bug与内存管理
2015/11/18 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
基于Fixed定位的框选功能的实现代码
2019/05/13 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
如何实现删除numpy.array中的行或列
2018/05/08 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
python模块hashlib(加密服务)知识点讲解
2019/11/25 Python
Python如何转换字符串大小写
2020/06/04 Python
使用Keras画神经网络准确性图教程
2020/06/15 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
教师节促销活动方案
2014/02/14 职场文书
大型会议接待方案
2014/03/01 职场文书
关于爱国的标语
2014/06/24 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
装修公司管理制度
2015/08/05 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript