MVVM架构~前台后台分离的思想与实践
MVVM是一种架构思想,是一种解决问题的方式,对于一个项目,一个功能模块,你可以选择使用MVVM的架构来实现,而knockoutjs只是实现MVVM的一种工具,它是在前端实现的,这一点,我们必须的清楚.
思想
下面说一下这讲的重点,前台和后台的分工问题,占占认为,前台只负责页面及页面CSS及实现效果的JS,而后台的工作包括业务的处理,数据的持久化,前台数据的绑定(knockoutjs)等等.
实践
下面是前台HTML代码
<table border="1"> <tr> <th>QuestionInfoID </th> <th>用户</th> <th>类型</th> <th>知识点</th> <th>难度</th> <th>日期</th> <th>年级</th> <th>学科</th> <th>图像</th> </tr> <tbody data-bind="foreach:model"> <tr> <td data-bind="text:QuestionInfoID"></td> <td> <span data-bind="if:Partner_Info"><span data-bind="text:Partner_Info.AccountName"></span></span> <span data-bind="if:User_Info"><span data-bind="text:User_Info.RealName"></span></span> </td> <td data-bind="text:OwnerType"></td> <td data-bind="text:Knowledge"></td> <td data-bind="text:Difficulty"></td> <td data-bind="text:AddTime"></td> <td data-bind="foreach:Question_Point_R"><span data-bind="text:Point_Info.Grade"></span></td> <td data-bind="foreach:Question_Point_R"><span data-bind="text:Point_Info.Subject"></span></td> <td> <img width="21" height="21" src="1.jpg" onerror="errorImg(this)" /></td> </tr> </tbody> </table>
下面是后台的knockoutjs代码
@Html.Pager(Model)//C#数据分页 <script type="text/ecmascript"> //图像加载出错时的处理 function errorImg(img) { img.src = "http://www.baidu.com/img/bdlogo.gif"; img.onerror = null; } var model = ko.observableArray(@Html.Raw(Json.Encode(Model)));//从后台得到数据集合,并转化为json对象 ko.applyBindings(model); </script>
运行截图
说明
在这个例子中,我们使用了knockoutjs里的if,foreach等关键字,if可以判断一个对象是否为空,而foreach可以把集合对象遍历出来.
分类:
前端技术
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2012-04-23 架构,改善程序复用性的设计(目录)