`

JavascriptMVC 之 route 的 history功能的使用

阅读更多

JavascriptMVC 之 route 的 history功能的使用

如果使用过ExtJs的同学,应该会知道它的history的功能,而在jquery MVC 框架中的route也具体有这种功能,

不过history的功能只是route中的其中一个功能。

在这里,只是举例介绍如何使用route的history的功能。


首先,定义一个router.js对象,
steal( 'jquery/controller', 'jquery/controller/route'
)
.then(function($) {
    $.Controller('Project.Router',
    /** @Static */
    {
        defaults : {
            nav1 : ''
        }
    },
    /** @Prototype */
    {
  /**
  *  这里是重点,它是实现history的核心
  * 监听route的变化,也就是type的变化,每当type变化时,会触发这个事件 
  */
        '{$.route} change' : function(el, ev, attr, how, newVal, oldVal) {
            switch (attr) {
                case 'type':
                    this.options.nav1 = newVal;
                    this.nav1_change(newVal);
                    break;
            }
        },
        nav1_change : function(val) {
            switch (val) {
                case 'home':
                    console.info("打开主页");
                    break;
                case 'task':
                    console.info("打开我的任务");
                break;
            }
        }
    })
});

接着,我们在模块初始化时,创建一个$.route对象,还有就是把router对象实例绑定到body元素上,再设置一下,默认打开页面,
那么,我们每次进去系统时,就会打开这个页面。当然,我们也可以把每次最后一个页面保存到cookie中,那么,我们F5刷新时,
页面会自动跳会到最后一次访问的页面。
steal(
 './project.css',    // application CSS file
 './models/models.js',  // steals all your models
 './fixtures/fixtures.js',// sets up fixtures for your models
 'lib/wijmo',
 'jquery/lang/json',
 'jquery/controller',
 'jquery/model',
 'jquery/view/ejs',
 'project/controllers',
 function(){     // configure your application
  
  //创建$.route对象
  $.route( "url/:type" );
  //创建router对象实例
     $('body').project_router();
//     $.route.attrs({type : 'home'});
  //默认打开页面
  location.hash = "#!url/home";
  
  $("#dContent").project_proc();
  
  
 });
最后,就是点击菜单时,如何变化type,
steal( 'jquery/controller','jquery/controller/view','jquery/view/ejs','jquery/model'
)
.then(function($) {
 //控制器
    $.Controller('project.proc',
    /** @Static */
    {
        defaults : {
        }
    },
    /** @Prototype */
    {
       'div.action a click':function(el,ev){
         var id = el.attr("href").substring(1);
   //在这里,我们点击菜单时,会改变type的值,这样会触发route的change事件
         $.route.attrs({type : id});
   return false;
       },
       init:function(){
       }
    }
)});

从上面我们可以看到通过3步就可以实现这个history功能,是不是很方便。

0
0
分享到:
评论

相关推荐

    JavaScriptMVC之实战

    NULL 博文链接:https://lyndon-lin.iteye.com/blog/1556095

    javascriptmvc3.0.5

    上传了一半的javascriptmvc3.0.5,这个是【下】

    javascriptmvc-3.2.4.zip

    在JavaScriptMVC中,"javascript"是指使用JavaScript语言进行开发,而"MVC"是一种软件架构模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于分离关注点,...

    javascriptmvc-3.3.zip

    1. **jQuery**: 作为基础库,jQuery提供了高效且易于使用的DOM操作、事件处理和Ajax交互功能。在JavaScriptMVC中,它被用于增强DOM元素的交互性和页面动态性。 2. **FuncUnit**: 这是一个JavaScript测试框架,专为...

    javaScriptMVC 开源框架 第一部分

    jQuery的使用使得JavaScriptMVC能够快速、高效地操作页面元素,提高了开发效率。 **核心组件** JavaScriptMVC框架包含了多个核心组件: 1. **DocumentJS**: 一个文档生成工具,用于自动生成API文档,帮助开发者...

    MVC框架 JavaScriptMVC.zip

    它提供了数据验证、事件触发等功能,确保数据的完整性和一致性。当Model的数据发生变化时,会自动通知相关的View进行更新。 **View** View在JavaScriptMVC中负责展示数据和响应用户交互。它通常是由模板语言编译...

    javascriptmvc

    - **end.js**:可能是一个完成特定功能的JavaScript文件,如初始化应用或处理页面加载后的逻辑。 - **changelog.txt**:记录了应用程序或框架的版本变更历史。 - **README.txt**:提供关于项目的基本信息、安装和...

    从JavaScriptMVC开始如何完成项目之压缩文件和生成帮助文档

    在“从JavaScriptMVC开始如何完成项目之压缩文件和生成帮助文档”这个主题中,我们将探讨如何利用该框架进行项目开发,特别是涉及到的压缩文件处理和生成帮助文档这两个关键环节。 一、压缩文件 在项目开发中,压缩...

    从JavaScriptMVC开始如何完成项目之创建应用程序

    这篇博客文章“从JavaScriptMVC开始如何完成项目之创建应用程序”可能是指导开发者如何使用特定的JavaScript MVC框架或库来构建一个完整的应用程序。 在JavaScript MVC中: 1. **模型(Model)**:负责处理和管理...

    javascriptmvc-3.0.5最新包

    javascriptmvc3.0.5,文件大于20MB,分成两个卷

    javaScriptMVC 开源框架 第二部分

    在这个"第二部分"中,我们将深入探讨这个框架的核心特性、工作原理以及如何与第一部分结合使用。 首先,MVC模式是软件工程中的一个经典设计模式,它将应用分为三个主要部分:Model(模型)负责处理数据和业务逻辑,...

    JavascriptMVC代码

    这些框架提供了丰富的功能,如数据绑定、依赖注入、路由管理、模板引擎等,极大地提高了开发效率和代码可维护性。 1. **Model**:在JavaScript MVC中,Model层是应用程序的数据存储。它通常包含业务逻辑和数据验证...

    JavaScriptMVC 测试框架 v2.2

    内容索引:脚本资源,Ajax/JavaScript,JavaScriptMVC JavaScriptMVC 是一个功能强大的 JavaScript framework. 也是一个很棒的JavaScript测试框架,它同样能提高开发的速度。JavaScriptMVC应用了模型-视图-控制器架构...

    谈谈JavaScriptMVC模式共3页.pdf.zip

    例如,一个用户列表Model可能会包含添加、删除或修改用户的功能,并在执行这些操作后通知视图进行更新。 **View(视图)** 视图层是用户与应用交互的部分,负责展示数据和响应用户操作。在JavaScript MVC中,View...

    JavaScriptMVC:JavaSriptMVC 高级编程课程

    JavaScriptMVC是一个全面的前端开发框架,专注于使用JavaScript进行复杂应用程序的构建。它结合了Model-View-Controller(MVC)的设计模式,提供了一整套工具和服务,旨在提高开发效率和代码可维护性。在这个高级...

    JavaScriptMVC框架Mithril.zip

    Mithril.js 是一个客户端的 JavaScript MVC 框架。可将应用分成数据层、UI层和控制层。Mithril 压缩后只有 3kb 左右。API 提供一个模板引擎,带 DOM diff 实现,支持路由和组合。 示例代码: ...

    javaScriptMVC 开源框架 第三部分(相关资料和例子)

    在"javascriptMVC 相关资料.docx"文档中,可能会包含以下知识点: 1. **MVC概念**:解释模型(Model)、视图(View)和控制器(Controller)的基本职责。模型处理数据和业务逻辑,视图负责用户界面的展示,而控制器...

    JavaScriptMVC框架PK:Angular、Backbone、CanJS与Ember

    :选择JavaScriptMVC框架很难。一方面要考虑的因素非常多,另一方面这种框架也非常多,而要从中选择一个合适的,还真得费一番心思。本文对JavaScriptMVC框架Angular、Backbone、CanJS和Ember作了比较,供大家参考。...

Global site tag (gtag.js) - Google Analytics