传统的client side js MVC 结构:
Model:
json object - mapping with PO from server side
View:
HTML + CSS
Controller:
Page object - 负责页面初始化逻辑(验证、事件绑定、json数据渲染到DOM),提交时,获取DOM的数据组装json。
Concrete Javascript Pattern :
把status 和 behavior 直接绑定到DOM element上。
jquery concrete framework:
http://github.com/hafriedlander/jquery.concrete
http://github.com/nkallen/effen/
前者42k,后者0.8k。
与直接在DOM element object上添加status or behavior相比,框架的好处是可以批量添加。
用例:
对于autocomplete组件,formatted data = data name; saved data= data id;
之前有一个实现是为了save data id,多加了一个 input hidden.
如果是concrete js pattern, 可以在这个input element 上直接保存数据。
effen + jquery.autocomplete test:
$('body').append('<div id="dom_test"><input id="month"/></div>');
var monthInput = $("#month");
monthInput.fn({
dataPair: function(){
if (arguments.length == 0) {
return this._data;
}
else {
this._data = arguments[0];
}
},
_data: []
});
monthInput.autocomplete(months, {
minChars: 0,
max: 12,
autoFill: true,
mustMatch: true,
matchContains: false,
scrollHeight: 220,
formatItem: function(data, i, total){
if (data[0] == months[new Date().getMonth()])
return false;
return data[0].substring(0, 3);
},
formatResult: function(row){
return row[1];
}
});
monthInput.result(function(event, data, formatted){
var _data = data[0].split("|");
monthInput.fn("dataPair", _data);
console.dir(monthInput.fn("dataPair"));
});
分享到:
相关推荐
状态模式(State Pattern)是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。在JavaScript中,状态模式同样适用,并且由于JavaScript的灵活性,实现起来相对简单。 状态...
这篇文章主要介绍了JavaScript设计模型Iterator实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Iterator Pattern是一个很重要也很简单的Pattern:迭代...
装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许用户在不修改现有对象的结构的前提下,给对象动态地添加额外的职责或行为。接下来,我们将详细介绍装饰者模式的定义、原理、应用方法及示例。 首先,...
Segregation data pattern., Reactive Design Patterns is a clearly-written guide for building event-driven distributed systems that are resilient, responsive, and scalable. In it, you'll find patterns ...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现事件驱动编程或者...
194、In a architecture pattern like MVC, it is mandatory that Servlet should be the controller, why not JSP? 46 195、Why JSP is used as View part of MVC ? 46 196、Can a database connection pool be ...
The json module: JavaScript Object Notation The plistlib module: A Property-List Parser ctypes Enhancements Improved SSL Support Deprecations and Removals Build and C API Changes Port-Specific ...