Ruby's Louvre

每天学习一点点算法

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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 ,或扫描二维码

posted on   司徒正美  阅读(1798)  评论(1编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 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学习笔记——文件
点击右上角即可分享
微信分享提示