关于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压缩混淆工具
May 16 Javascript
如何将JS的变量值传递给ASP变量
Dec 10 Javascript
Javascript常用字符串判断函数代码分享
Dec 08 Javascript
跟我学习javascript的函数调用和构造函数调用
Nov 16 Javascript
JavaScript弹窗基础篇
Apr 27 Javascript
原生JavaScript实现AJAX、JSONP
Feb 07 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
Feb 10 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
Mar 15 Javascript
五步轻松实现zTree的使用
Nov 01 Javascript
ES6中字符串的使用方法扩展
Jun 04 Javascript
layui实现数据表格自定义数据项
Oct 26 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
Dec 23 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中使用curl伪造IP的简单方法
2015/08/07 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
实例化php类时传参的方法分析
2020/06/05 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
node.js中的fs.unlinkSync方法使用说明
2014/12/15 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
移动端基础事件总结与应用
2017/01/12 Javascript
ES6新特性之变量和字符串用法示例
2017/04/01 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
sqlalchemy对象转dict的示例
2014/04/22 Python
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
Python中字典与恒等运算符的用法分析
2019/08/22 Python
python 实现多维数组(array)排序
2020/02/28 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
几个常见的消息中间件(MOM)
2014/01/08 面试题
韩语专业本科生求职信
2013/10/01 职场文书
资产经营总监岗位职责
2013/12/04 职场文书
在校学生职业规划范文
2014/01/08 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
美术教师求职信范文
2015/03/20 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技