博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
knockout学习笔记10:demo
阅读量:5282 次
发布时间:2019-06-14

本文共 2740 字,大约阅读时间需要 9 分钟。

  前面已经介绍了ko的基本用法,结合官方文档,基本就可以实际应用了。本章作为ko学习的最后一篇,实现一个简单的demo。主要集中在ko,所以后台数据都是静态的。类似于博园,有一个个人文章的分类列表,一个文章列表。可以在文章最后下载工程源代码(包括之前demo的代码)。实现效果图如下:

一、准备数据

  分类信息Kind:

public class Kind    {        public string Url { get; set; }        public string Name { get; set; }        public int Count { get; set; }            }

  文章信息Essay:

public class Essay    {        public string Url { get; set; }        public string Name { get; set; }        public short Status { get; set; }        public int Comment { get; set; }        public int PageView { get; set; }        public int RssView { get; set; }        public string Date { get; set; }    }

二、准备模板

  主要html:

分 类
    随笔
    标题 发布
    状态
    评论 页面
    浏览
    RSS
    阅读
    操作 操作

      分类模板和文章模板:

    三、数据绑定

      前台定义model和viewmodel,然后通过ajax获取数据,完成绑定。

    function Kind(){        this.Url = "";        this.Name = "";        this.Count = "";        this.getKind = function(){            $.getJSON("../Handlers/GetKind.ashx",function(data){                kindVM.kindList(data);            })        }    }    function KindList(){        this.kindList = ko.observable([]);    }    function Essay(){        this.Url = "";        this.Name = "";        this.Status = 0;        this.Comment = 0;        this.PageView = 0;        this.RssView = 0;        this.Date = "";        this.getEssay = function(){            $.getJSON("../Handlers/GetEssay.ashx",function(data){                        essayVM.essayList(data);                    })        }    }    function EssayList(){        this.essayList = ko.observableArray([]);        this.edit = function(essay){            alert("编辑:" + essay.Url);        }        this.del = function(dom){                  var jTr = $(dom).parents("tr");            jTr.replaceWith("删除成功!");                    }        this.getStatus = function(status){            if(status === 0){                return "未发布";            }            return "发布";        }    }    var kind = new Kind();    var kindVM = new KindList();    var essay = new Essay();    var essayVM = new EssayList();        ko.applyBindings(kindVM,document.getElementById("kindField"));    ko.applyBindings(essayVM,document.getElementById("essayField"));                   kind.getKind();    essay.getEssay();

     

    转载于:https://www.cnblogs.com/4littleProgrammer/p/4835709.html

    你可能感兴趣的文章
    jQuery之end()和pushStack()
    查看>>
    Bootstrap--响应式导航条布局
    查看>>
    Learning Python 009 dict(字典)和 set
    查看>>
    JavaScript中随着鼠标拖拽而移动的块
    查看>>
    HDU 1021 一道水题
    查看>>
    The operation couldn’t be completed. (LaunchServicesError error 0.)
    查看>>
    php每天一题:strlen()与mb_strlen()的作用分别是什么
    查看>>
    工作中收集JSCRIPT代码之(下拉框篇)
    查看>>
    《转载》POI导出excel日期格式
    查看>>
    code异常处理
    查看>>
    git - 搭建最简单的git server
    查看>>
    会话控制
    查看>>
    推荐一款UI设计软件Balsamiq Mockups
    查看>>
    Linux crontab 命令格式与详细例子
    查看>>
    百度地图Api进阶教程-地图鼠标左右键操作实例和鼠标样式6.html
    查看>>
    游标使用
    查看>>
    LLBL Gen Pro 设计器使用指南
    查看>>
    SetCapture() & ReleaseCapture() 捕获窗口外的【松开左键事件】: WM_LBUTTONUP
    查看>>
    Android 设置界面的圆角选项
    查看>>
    百度地图api服务端根据经纬度得到地址
    查看>>