Controller帮助创建合理的,可释放内存,快速执行jQuery配件。
它非常好的灵活性让它可以为一个传统和视图和控制器服务。 从这里我们可以得出,UI控件=视图+控制器。例如jquery UI:$("#test").dialog();
这也意味着我们使用它来很容易创建像Tab,Grid和右键菜单等控件,并且很好组合,符合行业规则。
控制器让你的代码有确定性,复用性,组织性,且可以很方便下载。
阅读关于the theory behind controller and a walkthrough of its features on Jupiter's blog. Get Started with jQueryMX也是一个不错的走查。
Controller继承$.Class,并且大量使用事件委托。
在使用Controller前要确定你已经理解这些概念。 简单例子:
//Instead of
$(function(){
$('#tabs').click(someCallbackFunction1)
$('#tabs .tab').click(someCallbackFunction2)
$('#tabs .delete click').click(someCallbackFunction3)
});
//do this
$.Controller('Tabs',{
click: function() {...},
'.tab click' : function() {...},
'.delete click' : function() {...}
})
$('#tabs').tabs();
Tab例子:
steal("jquery/controller", function(){
// create a new Tabs class
$.Controller("Tabs",{
// initialize widget
init : function(el){
// activate the first tab
$(el).children("li:first").addClass('active')
// hide the other tabs
var tab = this.tab;
this.element.children("li:gt(0)").each(function(){
tab($(this)).hide()
})
},
// helper function finds the tab for a given li
tab : function(li){
return $(li.find("a").attr("href"))
},
// hides old active tab, shows new one
"li click" : function(el, ev){
ev.preventDefault();
this.tab(this.find('.active').removeClass('active')).hide()
this.tab(el.addClass('active')).show();
}
})
// adds the controller to the element
$("#tabs").tabs();
})
使用Controller
Controller帮助你创建和组合jQuery插件。它可以使用来创建简单配件,像slider,或者组合多个配件成更大的配件。 理解如何使用Controller,你需要理解一个jQuery配件的正常生命周期,且又是如何把配件的动作映射到Controller中的函数的。
一个控制器类的创建
$.Controller("MyWidget",
{
defaults : {
message : "Remove Me"
}
},
{
init : function(rawEl, rawOptions){
this.element.append(
"<div>"+this.options.message+"</div>"
);
},
"div click" : function(div, ev){
div.remove();
}
})
这创建一个$.fn.my_widget jQuery助手函数,使用它可以创建一个Controller实例在一个元素上。
注:关于Controller的命名规范如下:
1、 underscored 下线线
2、 "." replaced with "_" 下划线替换点
3、 with Controllers removed. 删除Controllers
《代码》
在一个元素上创建一个Controller实例
$('.thing').my_widget(options) // calls new MyWidget(el, options)
这代码在每个'.thing'元素上都调用了new MyWidget(el,options)。 当一个新Controller类实例创建后,它会调用类的setup和init方法。Controller的setup方法: 1、设置元素且在这个元素的Class添加上Controller的名称。 2、合并处理default对象选项和设置它为this.options。
3、保存一个Controller引用到$.data
4、绑定所有事件手柄方法。
Controller响应事件
一般来说,Controller事件手柄是自动装订的。然而,一个Controller可以通过多种方式监听事件。 (你可以通过阅读这篇《JavaScriptMVC之控制器监听事件》去了解绑定事件方式)
一但一个事件发生,使用Controller实例的this引用的回调函数总是被调用。这就让Controller很容易使用助手函数和保存状态。
配件销毁
如果这个元素从页面上移除,这个Controller的destroy方法被调用。这是一个放置任意额外卸载功能的好地方。 也就是我们需要在这个Controller销毁前,需要做的一些额外的动作,可以添加在这里。 你也可以在程序中卸载一个Controller,如下:
$('.thing').my_widget('destroy');
分享到:
相关推荐
JavaScriptMVC是一个强大的JavaScript MVC(Model-View-Controller)框架,专为构建复杂且高性能的前端Web应用而设计。这个框架旨在提供一套完整的工具集,包括数据管理、视图渲染、路由控制以及测试支持,从而使得...
在JavaScriptMVC中,"javascript"是指使用JavaScript语言进行开发,而"MVC"是一种软件架构模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于分离关注点,...
JavaScriptMVC是一个强大的前端开发框架,它以JavaScript为核心,结合了Model-View-Controller(MVC)设计模式,旨在提供一套完整的解决方案,帮助开发者构建高效、可维护的Web应用程序。这个开源项目是基于jQuery和...
5. **Controller**: 控制器处理用户输入并协调视图和模型之间的交互。3.3版可能增强了控制器的响应能力和事件处理机制,提高了用户体验。 6. **View**: 视图负责展示数据,通常使用模板语言生成HTML。在...
这篇博客文章“从JavaScriptMVC开始如何完成项目之创建应用程序”可能是指导开发者如何使用特定的JavaScript MVC框架或库来构建一个完整的应用程序。 在JavaScript MVC中: 1. **模型(Model)**:负责处理和管理...
JavaScript MVC(Model-View-Controller)是一种用于构建前端Web应用程序的架构模式,灵感来源于Java的MVC框架。这种模式在JavaScript开发中广泛采用,旨在提高代码的组织性、可维护性和可扩展性。以下是关于...
MVC,即Model-View-Controller,是一种设计模式,旨在分离应用程序的数据层(Model)、用户界面层(View)和控制逻辑层(Controller)。在JavaScript环境中,这种模式被广泛应用,特别是在构建大型、动态的单页面...
app.controller = function() { this.pages = app.PageList(); }; //view app.view = function(ctrl) { return ctrl.pages().map(function(page) { return m("a", {href: page.url}, page....
JavaScript MVC(Model-View-Controller)是一种用于构建前端应用程序的架构模式,它借鉴了传统的后端MVC设计模式,以帮助开发者组织和管理复杂的JavaScript应用。在这个架构中,Model负责数据处理,View负责用户...
JavaScript MVC开源框架是一种用于构建富前端应用的框架,它整合了多种JavaScript库和技术,如jQuery,使得开发者可以更高效地组织和管理前端代码,实现Model-View-Controller(MVC)设计模式。在这个"第二部分"中,...
JavaScriptMVC是一个全面的前端开发框架,专注于使用JavaScript进行复杂应用程序的构建。它结合了Model-View-Controller(MVC)的设计模式,提供了一整套工具和服务,旨在提高开发效率和代码可维护性。在这个高级...
在"javascriptMVC 相关资料.docx"文档中,可能会包含以下知识点: 1. **MVC概念**:解释模型(Model)、视图(View)和控制器(Controller)的基本职责。模型处理数据和业务逻辑,视图负责用户界面的展示,而控制器...
* JavaScriptMVC:是一个基于MVC架构的JavaScript框架,专门用于构建复杂的Web应用程序。 结论 前端MVC架构是一种非常有用的架构模式,可以使得前端开发变得更加容易和高效。但是,它也需要开发者具备一定的技术...
3. **JavaScriptMVC**:JavaScriptMVC是一个完整的MVC框架,包含Model、View、Controller、ORM、测试工具等,旨在提高开发效率和代码质量。 4. **Qooxdoo**:Qooxdoo是一个全方位的JavaScript开发框架,提供编译器...
- **Backbone.js**:非常流行的MVC库之一,提供了一个强大的数据绑定系统以及丰富的视图管理机制。 - **Spine.js**:一个简单易用的MVC框架,特别适合小型项目。 - **Sammy.js**:专注于单页面应用的轻量级MVC框架,...
13. **JavaScriptMVC** - JavaScriptMVC是一个包含jQuery最佳实践的开源框架,实现了Model-View-Controller(MVC)架构,便于组织和管理大型项目。 14. **Spry** - Spry由Adobe开发,用于快速构建支持Ajax的Web应用...
MVC即Model-View-Controller的缩写,分别代表数据模型、视图和控制器。在JavaScript中,有多种MVC框架可供选择,它们各有优势和不足,针对不同的开发需求和场景,开发者可以做出合适的选择。下面将详细介绍12种流行...