关于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 相关文章推荐
基于JQuery的动态删除Table表格的行和列的代码
May 12 Javascript
简单的Jquery全选功能
Nov 07 Javascript
Javascript的严格模式strict mode详细介绍
Jun 06 Javascript
JavaScript中匿名函数用法实例
Mar 23 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
May 10 Javascript
AngularJS使用拦截器实现的loading功能完整实例
May 17 Javascript
vue中的计算属性的使用和vue实例的方法示例
Dec 04 Javascript
从vue源码解析Vue.set()和this.$set()
Aug 30 Javascript
jQuery实现基本淡入淡出效果的方法详解
Sep 05 jQuery
详解Vue.js 作用域、slot用法(单个slot、具名slot)
Oct 15 Javascript
Vue data的数据响应式到底是如何实现的
Feb 11 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 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
PHP实现HTML生成PDF文件的方法
2014/11/07 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
浅谈laravel中的关联查询with的问题
2019/10/10 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
分页栏的web标准实现
2011/11/01 Javascript
js变换显示图片的实例
2013/04/16 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
jQuery实现日期联动效果实例
2016/07/26 Javascript
jquery 正整数数字校验正则表达式
2017/01/10 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
2017/11/14 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
vue实现学生录入系统之添加删除功能
2018/07/11 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
python实现sublime3的less编译插件示例
2014/04/27 Python
apache部署python程序出现503错误的解决方法
2017/07/24 Python
python爬取微信公众号文章的方法
2019/02/26 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
Python使用matplotlib 画矩形的三种方式分析
2019/10/31 Python
PyQt5实现简单的计算器
2020/05/30 Python
python实现邮件循环自动发件功能
2020/09/11 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
大学应届生求职简历的自我评价
2013/10/08 职场文书
俞敏洪励志演讲稿
2014/04/29 职场文书
新教师培训心得体会
2014/09/02 职场文书
销售员试用期自我评价
2014/09/15 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL