knockout 监控数组的缺点
knockout的监控数组没有想象中的强大,只能监控数组元素的位置变化,或个数的增减,然后对视图对应区域进行同步。
<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv= "Content-Type" content= "text/html; charset=UTF-8" > <script src= "knockout.js" ></script> <script> </script> </head> <body> <table> <thead> <tr><th>First name</th><th>Last name</th></tr> </thead> <tbody data-bind= "foreach: people" > <tr> <td data-bind= "text: firstName" ></td> <td data-bind= "text: lastName" ></td> </tr> </tbody> </table> <!-- 不能将监控属性与$index相加,否则页面直接打印$index的实现,$index貌似只能单个使用 --> <ul data-bind= "foreach: people" > <li data-bind= "text: $index" ></li> <li data-bind= "text: firstName + $index" ></li> </ul> <script type= "text/javascript" > var a = { people: ko.observableArray([ ko.observable({firstName: 'Bert' , lastName: 'Bertington' }), ko.observable({firstName: 'Charles' , lastName: 'Charlesforth' }), ko.observable({firstName: 'Denise' , lastName: 'Dentiste' }) ]) } ko.applyBindings(a); setTimeout( function () { a.people()[1]({firstName: "7777" , lastName: "3333" }) a.people.push({firstName: 'xxx' , lastName: new Date}) }, 700) </script> </body> </html> |
首先它那个对绑定属性的值的parser本来就非常弱,$index好像只能独立使用。像avalon的parser也非常弱,但我另一个转换为求值函数的parser还是能拿得出手的。
其次,对数组的元素的操作不太人性化。如果我们是用 a.people()[1]({firstName: "7777"}),那么它的lastName的位置为空白,看来它是做替换操作而不是更新操作。
如果您觉得此文有帮助,可以打赏点钱给我支付宝1669866773@qq.com ,或扫描二维码


机器瞎学/数据掩埋/模式混淆/人工智障/深度遗忘/神经掉线/计算机幻觉/专注单身二十五年
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
2011-06-22 python学习笔记——异常
2011-06-22 python学习笔记——文件