MVVM架构~knockoutjs系列之数组的$index和$data
已经写了很多knockoutjs的文章了,今天在review代码时,忽然看到一个问题,在knockout环境下,如何遍历一个简单的数组?对于遍历对象组件的数组来说,很容易,直接foreach:对象名,然后进行属性的绑定即可,而如下数据[10,20,30]这种简单的数组,如何去遍历呢?在阅读knockout官网后,找到了答案,如下实例:
<label>博主</label> <div data-bind="text:User.title"></div> <label>地域</label><div data-bind="text:User.address"></div> <label>所经历的等级 </label> <ul data-bind="foreach:Level"> <li>索引:<span data-bind="text: $index"></span>,数值:<span data-bind="text: $data"></span></li> </ul> <label>所购买的 </label> <div data-bind="foreach:SaleDetail"> [<span data-bind="text:id"></span>] <span data-bind="text:memo"></span> [<a href="javascript:;" data-bind="click:$parent.remove">移除</a>]<hr /> </div> <script type="text/javascript"> var Demo = function () { var self = this; self.User = { title: "test knockout js", address: "beijing" }; self.Level = [10, 20, 30, 40, 50]; self.SaleDetail = ko.observableArray([ { id: 1, memo: '2005-01,消费购买了水壶' }, { id: 2, memo: '2006-03,消费购买了手机' }, { id: 3, memo: '2006-10,消费购买了手机' } ]); for (var i = 0; i < 5; i++) { self.SaleDetail.push({ id: i + 4, memo: '2005-01,消费购买了水壶' }) } self.remove = function () { self.SaleDetail.remove(this); } } ko.applyBindings(new Demo()); </script>
重要看一下HTML部分
其中$index表示为组件的索引值,它从0开始,$data表示这个索引对应的具体的值,看一下程序运行结果的截图
分类:
前端技术
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示