问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ngOnChanges无法检测数组内容修改时解决方案

发布网友 发布时间:2023-03-17 13:51

我来回答

1个回答

热心网友 时间:2023-11-03 17:42

ngOnChanges是Angular的生命周期钩子, 当数据绑定输入属性的值发生变化时调用。

ngOnChanges()方法获取了一个对象,它可以同时观测1个/多个绑定的属性值,它把每个发生变化的属性名都映射到了一个SimpleChange对象, 该对象中有属性的当前值和前一个值。

假如数据绑定输入属性绑定的数据为一个数组时,数组内容发生改变ngOnChanges是无法监听到的,在这种情况下具体有如下几种解决方案。

1.假如绑定的数组长度每次都发生变化,可以监听数组长度变化从而执行ngOnChanges中的函数。
(坏处:假如数组长度不变,其中某项内容改变无法检测。

2.可以将数组包为一个对象,增加一个key值。(实测无效,即使包成对象依然无法检测到其value中的数组数据改变)

3.将数组包为一个对象,并增加一个key: index,在index中传一个随机数/当前时间戳。(好处在于每次都能触发ngOnChanges,坏处在于这么做可能会消耗性能)

以上三种方法为ngOnChanges无法检测数组内容修改时具体的解决方案,个人比较青睐第三种,毕竟触发比较稳定 o

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 angularviewref.moveclick失效 Angular-ngDoCheck Angular2.x中新增的Change Detection(变化检测) 深入理解Angular的变更检测 read it and weep 翻译成中文是什么意思 weep的意思和tears有什么不同 weep的中文意思是什么? 交强险每年收费都是递减的吗 让头发变浓密的方法有哪些 北京福琳太姥山茶叶商贸有限公司怎么样? 关于受助贫困学生写给资助人的感谢信 怎么判断菠萝蜜熟没熟 怎么用QQ钱包里的钱充值Q点 小孩子户口本改名字需要什么手续 手机qq无缘无故多出个群页面是空白的 qq退出了群,怎么找回来啊! 笔记本电脑是不是也要拿去清理一下垃圾' 生肖血型星座最佳婚配,血型,属相,星座配对。 从星座属相血型角度看配对怎么样B型血天平男和O型血白羊女相处融洽? 血型和星座是怎样对应的 新生儿要不要用勺子 新生儿有必要买硅胶勺子吗,新生儿需要用到硅胶软勺吗 有没有一种乐器叫做大贝?知道的人可以告诉我有关于这种乐器的介绍吗?=)谢谢咯 面试个人自我介绍(范文)10篇 狗狗生病了,怎么才算是痊愈呢 举重肌肉会拉伤,怎么样才能痊愈? 手机号码怎么添加? 京东进口啤酒下架了吗 求大神帮忙解决下asp.net链接数据库的问题,如何链接到内部sqlserver MVC2 MVC3 MVC4,MVC5的区别,EF的各个版本的区别;LocalDB是个啥 asp.net数据库相对路径链接怎么弄 怎样让木地板长时间保持干净? 求Y470家庭普通版升级旗舰版密钥。 谁有最新联想y470升级旗舰版密钥? 谁有最新联想y470升级旗舰版密钥 联想y470旗舰版升级密钥..................64位.... 联想拯救者i7开机黑屏,可移动鼠标,大小写可以切换,就是黑屏 能给个联想Y470家庭普通版升级旗舰版密钥吗?万分感谢 y470 I7 显卡坏了 开机直接黑屏 有时进了桌面只要动鼠标就死机 急急急!!高分!!版权申明怎么写,文章类,因为要投稿所以必须附上。