关于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 相关文章推荐
aspx中利用js实现确认删除代码
Jul 22 Javascript
JS将秒换成时分秒实现代码
Sep 03 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
Mar 18 Javascript
jQuery中slideUp()方法用法分析
Dec 24 Javascript
JavaScript中的数组特性介绍
Dec 30 Javascript
jQuery的load()方法及其回调函数用法实例
Mar 25 Javascript
javascript实现点击后变换按钮显示文字的方法
May 13 Javascript
理解JavaScript原型链
Oct 25 Javascript
Vue自定义指令实现checkbox全选功能的方法
Feb 28 Javascript
jQuery实现菜单的显示和隐藏功能示例
Jul 24 jQuery
layer扩展打开/关闭动画的方法
Sep 23 Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
Sep 04 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 设置MySQL连接字符集的方法
2011/01/02 PHP
PHP中echo和print的区别
2014/08/28 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
JavaScript入门基础
2015/08/12 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
vue自定义filters过滤器
2018/04/26 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
layui动态渲染生成select的option值方法
2019/09/23 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
Python 除法小技巧
2008/09/06 Python
python中PIL安装简单教程
2016/04/21 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
2016/06/21 Python
python docx 中文字体设置的操作方法
2018/05/08 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
Pytorch之保存读取模型实例
2019/12/30 Python
python实现简单颜色识别程序
2020/02/19 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
html Table 表头固定的实现
2019/01/22 HTML / CSS
IRO美国官网:法国服装品牌
2018/03/06 全球购物
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
旅游管理专业个人求职信范文
2013/12/24 职场文书
师说教学反思
2014/02/07 职场文书
聚美优品励志广告词
2014/03/14 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
Python如何配置环境变量详解
2021/05/18 Python