创建自定义绑定
你可以创建自己的自定义绑定 – 没有必要非要使用内嵌的绑定(像click,value等)。你可以你封装复杂的逻辑或行为,自定义很容易使用和重用的绑定。例如,你可以在form表单里自定义像grid,tabset等这样的绑定。
重要:以下文档只应用在Knockout 1.1.1和更高版本,Knockout 1.1.0和以前的版本在注册API上是不同的。
注册...
分类:
其他好文 时间:
2015-07-17 10:01:53
阅读次数:
162
好久没有更新blog了,算是憋了一个大招 :)
下面是这本书的前言。
前 言
现在已经是一个移动互联网的时代,借助手机等移动设备,人们可以完成资讯的获取、社交、游戏,以及日常生活的各种应用,甚至很多工作的开展。有很多新兴的移动互联网公司在崛起,也有很多传统的IT公司在转型,更有大量传统行业的企业在借助移动互联网拓展自己的业务。对IT技术人员而言,这是一个非常好...
分类:
移动开发 时间:
2015-07-17 10:01:57
阅读次数:
691
我们来看看如果使用Knockout更简单的来实现密码强度的验证。
原有代码请查看:
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3....
分类:
编程语言 时间:
2015-07-17 10:01:35
阅读次数:
133
Mapping插件
Knockout设计成允许你使用任何JavaScript对象作为view model。必须view model的一些属性是observable的,你可以使用KO绑定他们到你的UI元素上,当这些observable值改变的时候,这些UI元素就会自动更新。
绝大多数程序都需要从服务器端获取数据,但是由于服务器不知道observable的概念是什么,它只支持简单的Java...
分类:
移动开发 时间:
2015-07-17 10:01:53
阅读次数:
149
??
题意:给定n个数,求两段连续不重叠子段的最大和。
思路很简单,把原串划为两段,求两段的连续最大子串和之和,这里要先预处理一下,用lmax数组表示1到i的最大连续子串和,用rmax数组表示n到i的最大连续子串和,这样将时间复杂度降为O(n)。
#include
#include
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2015-07-17 09:59:18
阅读次数:
130
5 Control types
这个例子,对view model没有什么特殊的展示,只是展示如何绑定到各种元素上(例如,select, radio button等)。
代码: View
View
Code
代码: View model
var viewModel = {
stringValue: ko.observable("He...
分类:
其他好文 时间:
2015-07-17 10:00:24
阅读次数:
164
MVC之前的那点事儿系列,是笔者在2012年初阅读MVC3源码的时候整理的,主要讲述的是从HTTP请求道进入MVCHandler之前的内容,包括了原创,翻译,转载,整理等各类型文章,当然也参考了博客园多位大牛的文章,对此表示感谢,这次有时间贴出来,希望对大家有用。
主要内容
本文讲解的是:服务器接受Http Request请求之后,是如何进入.Net CLR,从而进一步操作的。
...
分类:
Web程序 时间:
2015-07-17 10:01:25
阅读次数:
146
介绍
本篇主要是介绍创建对象方面的模式的下篇,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码。
模式6:函数语法糖
函数语法糖是为一个对象快速添加方法(函数)的扩展,这个主要是利用prototype的特性,代码比较简单,我们先来看一下实现代码:
if (typeof Function.prototype.method !== "function") {
...
分类:
编程语言 时间:
2015-07-17 10:01:28
阅读次数:
171
介绍
本篇主要是介绍创建对象方面的模式,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码。
模式1:命名空间(namespace)
命名空间可以减少全局命名所需的数量,避免命名冲突或过度。一般我们在进行对象层级定义的时候,经常是这样的:
var app = app || {};
app.moduleA = app.moduleA || {};
app.modul...
分类:
编程语言 时间:
2015-07-17 09:59:42
阅读次数:
109
PHP 并不仅限于创建 HTML 输出, 它也可以创建和处理包括 GIF, PNG, JPEG, WBMP 以及 XPM 在内的多种格式的图像。 更加方便的是,PHP 可以直接将图像数据流输出到浏览器。 要想在 PHP 中使用图像处理功能,你需要连带
GD 库一起来编译 PHP。 GD 库和 PHP 可能需要其他的库, 这取决于你要处理的图像格式。 你可以使用 PHP 中的图像函数来获取下列格式...
分类:
Web程序 时间:
2015-07-17 09:58:38
阅读次数:
175
介绍
桥接模式(Bridge)将抽象部分与它的实现部分分离,使它们都可以独立地变化。
正文
桥接模式最常用在事件监控上,先看一段代码:
addEvent(element, 'click', getBeerById);
function getBeerById(e) {
var id = this.id;
asyncRequest('GET', 'beer.uri?id=' ...
分类:
编程语言 时间:
2015-07-17 09:59:51
阅读次数:
153
介绍
原型模式(prototype)是指用原型实例指向创建对象的种类,并且通过拷贝这些原型创建新的对象。
正文
对于原型模式,我们可以利用JavaScript特有的原型继承特性去创建对象的方式,也就是创建的一个对象作为另外一个对象的prototype属性值。原型对象本身就是有效地利用了每个构造器创建的对象,例如,如果一个构造函数的原型包含了一个name属性(见后面的例子),那通过...
分类:
编程语言 时间:
2015-07-17 09:58:10
阅读次数:
132
介绍
本文介绍的四种代码复用模式都是最佳实践,推荐大家在编程的过程中使用。
模式1:原型继承
原型继承是让父对象作为子对象的原型,从而达到继承的目的:
function object(o) {
function F() {
}
F.prototype = o;
return new F();
}
// 要继承的父对象
var parent...
分类:
编程语言 时间:
2015-07-17 10:00:28
阅读次数:
133
Given a singly linked list, determine if it is a palindrome.Follow up:Could you do it in O(n) time and O(1) space?判断一个单向链表是否是回文链表,要求O(n)的时间复杂度和O(1)的空间复杂度。算法有以下几种:1、遍历整个链表,将链表每个节点的值记录在数组中,再判断数组是不是一个回文数...
分类:
其他好文 时间:
2015-07-17 09:57:35
阅读次数:
133
介绍
模板方法(TemplateMethod)定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法是一种代码复用的基本技术,在类库中尤为重要,因为他们提取了类库中的公共行为。模板方法导致一种反向的控制结构,这种结构就是传说中的“好莱坞法则”,即“别找找我们,我们找你”,这指的是父类调用一个类的操作,而...
分类:
编程语言 时间:
2015-07-17 09:59:10
阅读次数:
129
JavaScript 数组是值的有序集合,所谓有序即数组的下标或索引从零开始递增,但也可能是稀疏的,数组长度可通过 length 属性获得。数组中元素的类型是任意的,创建数组时无需声明数组长度,它是动态的,会根据需要自动增长或缩减。数组继承自Array.prototype,它定义了一套丰富的数组操作方法,这个在后面会介绍到。1、创建数组使用数组直接量:var empty = [];
var prim...
分类:
编程语言 时间:
2015-07-17 09:56:52
阅读次数:
120
介绍
适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作。速成包装器(wrapper)。
正文
我们来举一个例子,鸭子(Dock)有飞(fly)和嘎嘎叫(quack)的行为,而火鸡虽然也有飞(fly)的行为,但是其叫声是咯咯的(gobble)。如果...
分类:
编程语言 时间:
2015-07-17 09:57:52
阅读次数:
112