关于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 相关文章推荐
window.event快达到全浏览器支持了,以后使用就方便了
Nov 30 Javascript
javascript测试题练习代码
Oct 10 Javascript
javascript用函数实现对象的方法
May 14 Javascript
js获取元素的外链样式的简单实现方法
Jun 06 Javascript
Vue.js每天必学之方法与事件处理器
Sep 06 Javascript
webpack配置文件和常用配置项介绍
Apr 28 Javascript
vue2.0之多页面的开发的示例
Jan 30 Javascript
vue项目引入Iconfont图标库的教程图解
Oct 24 Javascript
vue2.0 如何在hash模式下实现微信分享
Jan 22 Javascript
微信小程序Flex布局用法深入浅出分析
Apr 25 Javascript
jquery向后台提交数组的代码分析
Feb 20 jQuery
JS出现404错误原理及解决方案
Jul 01 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实现的随机广告显示代码
2007/06/14 PHP
在php MYSQL中插入当前时间
2008/04/06 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
JavaScript中的细节分析
2012/06/30 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
NodeJS加密解密及node-rsa加密解密用法详解
2018/10/12 NodeJs
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python操作MongoDB基础知识
2013/11/01 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
python爬虫基本知识
2018/03/05 Python
Python并行分布式框架Celery详解
2018/10/15 Python
Python requests模块实例用法
2019/02/11 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
古驰英国官网:GUCCI英国
2020/03/07 全球购物
Linux Interview Questions For software testers
2012/06/02 面试题
车间安全生产标语
2014/06/06 职场文书
员工培训协议书
2014/09/15 职场文书
导师对论文的学术评语
2015/01/04 职场文书
加班费申请报告
2015/05/15 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
Mysql Show Profile
2021/04/05 MySQL
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers