KnockoutJs (三)为Json数据添加监控属性(方法)

原创 2016年08月21日 11:02:27
 var cartList = (@Html.Raw(@ViewData["json"])); //接收后台json数据
            for(var item in cartList)
            {
                var p=cartList[item].Price;
                var c=cartList[item].Count;
                cartList[item].Price=ko.observable(p); //添加监控
                cartList[item].Count=ko.observable(c); //添加监控
                cartList[item].ComputePrice=ko.computed(function(index){  //为json添加计算价格方法
                    return {
                        read:function(){
                            var self = cartList[index];
                            return formatPrice(self.Price()* self.Count());
                        },owner:this
                    }
                }(item));
                cartList[item].subtract=ko.computed(function(index){ //因为要遍历整个Json数据,每个item方法需要采用闭包形式封装
                    return {
                        read:function(){
                            var self=cartList[index];
                            return self.Count();
                        },
                        write:function(){
                            var self=cartList[index];
                            if (self.Count()>1)
                            {
                                self.Count(self.Count()-1);
                            }
                        },owner:this
                    }
                }(item));
                cartList[item].add=ko.computed(function(index){
                    return {
                        read:function(){
                            var self=cartList[index];
                            return self.Count();
                        },
                        write:function(){
                            var self=cartList[index];
                            if (self.Count()<999)
                            {
                                self.Count(self.Count()+1);
                            }
                        },owner:this
                    }
                }(item));
            } 



knockout绑定复杂的JSON数据 使用 Mapping插件

1.  插件的引入 下载地址 https://github.com/SteveSanderson/knockout.mapping/tree/master/build/output 2   通过ma...
  • u012499210
  • u012499210
  • 2016年06月29日 20:52
  • 1968

knockout js动态绑定viewModel的对象属性

最近因为公司的需要用到了knockout js.而每次写页面的js的时候都要手动写一个viewModel 感觉很繁琐..就动手写了一个递归来进行viewModel的绑定(后面才发现原来ko已经有写好的...
  • Wx_H_
  • Wx_H_
  • 2016年03月23日 14:12
  • 2915

Knockout 绑定列表

上一个章节我们说到Knockout能够很方便地做数据绑定,也提供了一些实例。在通常的开发过程中,最常见的数据操作就是列表。今天写了一个例子来说明Knockout是如何做列表的数据绑定的。 1.控制器...
  • afandaafandaafanda
  • afandaafandaafanda
  • 2015年03月29日 18:24
  • 2407

KnockoutJS (一)Json动态增删

var cmyk=[ { colorName:"cyan", value:"100,0,0,0" ...
  • Seal203
  • Seal203
  • 2016年08月20日 20:01
  • 546

MVC Techniques with jQuery, JSON, Knockout, and C#

Download source code - 4.97 MB Introduction “Change will not come if we wait for some other person...
  • deepwishly
  • deepwishly
  • 2012年06月19日 14:53
  • 1636

什么情况下适合在knockout项目中应用KOMapper

了KOMapper这样一个工具,它能帮助自动根据api获取到的json去生成viewModel,我们在给viewModel添加业务需要的跟踪和联动,当然,komapper生成的viewModel能直接...
  • u013239783
  • u013239783
  • 2016年07月29日 14:12
  • 408

knockout.js实例三~可编辑列表(结合Web Api)

knockout.js实例三~可编辑列表(结合 Web Api)这次的实例与之前的实例最大的区别就是结合了Web Api,另外的就是在项目中经常会使用到的对数据的新增修改删除功能,此次实例中的Web ...
  • zhanxueguang
  • zhanxueguang
  • 2015年07月13日 21:29
  • 799

KnockoutJs (三)为Json数据添加监控属性(方法)

var cartList = (@Html.Raw(@ViewData["json"])); //接收后台json数据 for(var item in cartList) ...
  • Seal203
  • Seal203
  • 2016年08月21日 11:02
  • 1092

knockout一个页面中绑定多个model

1.   一个页面中绑定多个model需要引入插件Knockout-MultiModels  2.引入插件  jquery.livequery.js ,knockout.multimodels-0....
  • u012499210
  • u012499210
  • 2016年06月29日 20:44
  • 1757

knockoutjs 创建字段并输出到模板后 js修改它的值 observable

遇到一个问题就是:我定义了一个字段,如:this.table_name = ko.observable(); 我从json数据获取到之后,需要修改这个值,但是不能直接用this.table_name...
  • fanshu1991
  • fanshu1991
  • 2016年08月17日 16:44
  • 396
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:KnockoutJs (三)为Json数据添加监控属性(方法)
举报原因:
原因补充:

(最多只允许输入30个字)