关于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实现360°全景拖动展示
Mar 18 Javascript
浅谈javascript的分号的使用
May 12 Javascript
jquery序列化方法实例分析
Jun 10 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
Nov 02 Javascript
BootStrap中
Dec 10 Javascript
vue指令以及dom操作详解
Mar 04 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
Apr 20 Javascript
JavaScript中undefined和null的区别
May 03 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
Jun 09 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
Aug 30 Javascript
微信小程序npm引入vant-weapp的踩坑记录
Aug 01 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获取mysql版本的几种方法小结
2008/03/25 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
Vue下的国际化处理方法
2017/12/18 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
Python中字典和JSON互转操作实例
2015/01/19 Python
python微信好友数据分析详解
2018/11/19 Python
python 实现二维列表转置
2019/12/02 Python
Python实现密码薄文件读写操作
2019/12/16 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
python时间与Unix时间戳相互转换方法详解
2020/02/13 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
马来西亚网上购物平台:ezbuy
2018/02/13 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
Linux文件操作命令都有哪些
2015/02/27 面试题
个人自我鉴定
2013/11/07 职场文书
教师绩效考核方案
2014/01/21 职场文书
改革共识倡议书
2014/08/29 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
村官2015年度工作总结
2015/10/14 职场文书
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫
基于Python实现对比Exce的工具
2022/04/07 Python