关于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静态的url如何传递
May 03 Javascript
js获取当前select 元素值的代码
Apr 19 Javascript
JavaScript prototype属性深入介绍
Nov 27 Javascript
Node.js安装教程和NPM包管理器使用详解
Aug 16 Javascript
jQuery表格插件datatables用法总结
Sep 05 Javascript
javascript里使用php代码实例
Dec 13 Javascript
利用React-router+Webpack快速构建react程序
Oct 27 Javascript
JavaScript表单验证开发
Nov 23 Javascript
Angular4 Select选择改变事件的方法
Oct 09 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
Apr 28 Javascript
vue自定义组件实现双向绑定
Jan 13 Vue.js
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 Vue.js
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分页函数代码(简单实用型)
2010/12/02 PHP
php 变量未定义等错误的解决方法
2011/01/12 PHP
7个超级实用的PHP代码片段
2011/07/11 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
简单的分页代码js实现
2016/05/17 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
bootstrap导航、选项卡实现代码
2016/12/28 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
python实现拓扑排序的基本教程
2018/03/11 Python
python面向对象法实现图书管理系统
2019/04/19 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
2020/04/01 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
法学专业自我鉴定
2014/02/05 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
餐馆开业致辞
2015/08/01 职场文书
2016年法制宣传月活动总结
2016/04/01 职场文书
女性励志书籍推荐
2019/08/19 职场文书
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python