随笔分类 - MVVM
摘要:Knockout真正强大之处在于绑定机制,通过data-bind属性值体现绑定,不仅可以绑定值,还可以绑定事件,甚至可以自定义绑定。 从一个例子看Knockou的绑定机制 假设想给一个button元素变成jQuery UI的button,大致这样做:点我
$('#btn').button( icons: { primary: 'ui-icon-gear' } ); "他山之石,可以攻...
阅读全文
摘要:本篇体验使用 foreach 绑定一个Product集合。 首先使用构造创建一个View Model。 var Product = function(data) { this.name = ko.observable(data.name); this.category = ko.observable(data.category);
...
阅读全文
摘要:在前两篇中,体验了Knockout的基本验证和自定义验证。本篇自定义验证信息的显示位置与内容。 自定义验证信息的显示位置 通常,Knockout的验证信息紧跟在input后面,通过validationMessage属性可以自定义验证信息的显示位置。@{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cs...
阅读全文
摘要:在上一篇中体验了Knockout.Validation的基本验证,本篇体验自定义验证和异步验证。 自定义验证规则 ko.validation有一个rules属性,专门用来存放验证规则,它是一个键值对集合类型,key就是自定义验证规则的名称,value是一个json对象。@{ ViewBag.Title = "Index"; Layout = "~/Views/Shared...
阅读全文
摘要:本篇体验View Model验证。Knockout的subscribe方法能为View Model成员注册验证规则。 @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml";
} 最大长度为8!
@section scripts
{ } 以上的做法稍显繁琐。其实,使用...
阅读全文
摘要:通常,需要把View Model转换成json格式传给服务端。但在很多情况下,View Model既会包含字段,还会包含方法,我们只希望把字段相关的键值对传给服务端。 先把上一篇的Product转换成json格式,通过pre元素显示出来。 @section scripts
{ } 可是,我们只想把name,category键值对传给服务端,该如何做到呢? □ 方...
阅读全文
摘要:使用Knockout,当通过构造函数创建View Model的时候,构造函数的参数个数很可能是不确定的,于是就有了这样的一个解决方案:向构造函数传递一个object类型的参数data。 @section scripts
{ } 以上,通过构造函数创建Product的时候,只用到了一个参数,data。在实例化Product的时候,给Product各个成员赋默认值。另外,还...
阅读全文
摘要:本篇体验使用ko.computed(fn)计算、组合View Model成员、Select元素的绑定、使用构造器创建View Model、通过View Model的原型(Prototype)为View Model添加扩展方法。 □ 使用ko.computed(fn)计算成员 有时候,我们希望把View Model中的几个成员组合起来成为一个新成员,使用ko.computed(fn)可实现。...
阅读全文
摘要:本篇体验在ASP.NET MVC下使用Knockout,将使用EF Code First创建数据库。最后让Knockout绑定一个Json对象。 创建一个领域模型。namespace MvcApplication3.Models
{ public class Product { public int Id { get; set; } public...
阅读全文
摘要:在遍历数组、集合的时候,通常要获取元素的索引,本篇体验使用Knockout获取索引的2种方法。 假设有这样的一个模型: namespace UseIndex.Models{ public class Student { public int Id { get; set; } public string Name { get; set; } }}在Ho...
阅读全文
摘要:Angularjs是一个前端的Javascript MVC 库和框架,使前端得到更好的设计、维护和测试。它的核心特性有:MVC、双向数据绑定、指令和语义化标签、模块化工具、依赖注入、HTML模板,以及对常用工具的封装,例如$http、$cookies、$location等。本篇体验Angularjs在MVC中的基本使用。 通过NuGet,输入关键字Angularjs,安装"Angular JS ...
阅读全文
摘要:本篇使用Knockout在MVC下实现"Hello World",对应的官网实例在这里。 当次数达到3: View视图 页面包含三个部分:1、显示点击按钮的次数2、button按钮,每点击一次,显示的次数加1,并且,当次数达到3次,button禁用3、最下面的div只有在次数达到3的时候才显示,并提供"重置"按钮 You've clicked times Click me Tha...
阅读全文
摘要:本篇使用Knockout在MVC下实现"Hello World",对应的官网实例在这里。 View视图 Knockout的一个特点是:声明式绑定,即Declarative bindings。暂且不管业务逻辑,先把关注点放在界面UI上,即"MVVM"模式中的第二个"V", 也就是View视图。根据Knockout的语法,创建如下界面: First name: Las...
阅读全文
摘要:SportsStore是《精通ASP.NET MVC3框架(第三版)》中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器、URL优化、导航、分页、购物车、订单、产品管理、图像上传......是不错的MVC实践项目,但该项目不是放在多层框架下开发的,离真实项目还有一段距离。本系列将尝试在多层框架下实现SportsStore项目,并用自己的方式实现一些功能。 本篇为"在三层架构下...
阅读全文