`
hjingfen
  • 浏览: 16474 次
社区版块
存档分类
最新评论

MVC在AugularJS下的具体实现

 
阅读更多
MVC是一种使用MVC(Model View Controller 模型-视图-控制器)设计创建Web应用程序的模式。
Model(模型)是应用程序中处理数据逻辑功能的部分,用来实现程序的具体逻辑功能,通常包括数据库中数据的存取。
View(视图)是应用程序中处理数据显示的部分,也就是用户看见的并且可以与之进行交互的界面。
Controller(控制器)是应用程序中处理用户交互的部分,是模型和视图之间交互的纽带,确保了视图和模型的同步。通常控制器接受用户的输入然后调用模型和视图去完成用户的需求,也就是说控制器本身不输出任何东西也不做任何逻辑功能处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。
[img]

[/img]
例如,用AngularJS创建并存储一个新的(不与之前创建的活动名重复)的活动然后显示出所有创建的活动名称。
创建活动的view:

%input.input-full(type="text" ng-model="activity_name" style="height:38px" ng-change="listen_text()" ) //listen_test()与下面的button_disabled是用来实现输入框为空时,创建按钮不可点,功能函数在此不做介绍。
#test(style="color:red" ng-show='tip')活动名称重复!  //如果活动名重复,红色字体提醒,并且不创建。
%button.btn.btn-2(style="width:100%" ng-disabled="button_disabled"  ng-tap="click_create()")创建  //点击创建按钮后,就会执行创建活动的controller中的$scope.click_create().

创建活动的controller:
$scope.click_create = function(){
        if(Activity.check($scope.activity_name)){ 
            $scope.tip = true;
            return;
        }
        Activity.save($scope.activity_name); 
        $navigate.go('/sign_up'); 
    } //可以看出controller中没有直接自己完成创建、保存功能,而是调用model中的方法来实现这些业务功能的,并且controller还会根据model返回的数据传给相应的view来做显示。

创建活动的model:
function Activity(activity_name){
    this.activity_name = activity_name;
}

Activity.check = function(activity_name){
    var activities = JSON.parse(localStorage.getItem('activities')) || [];
    var current_user = localStorage.current_user;
    return _.find(activities, function(activity){
        return activity.activity_name == activity_name;
    }) ? true : false;
}  //检查这个活动是否是新活动,并返回布尔值给controller。

Activity.save = function(activity_name){
    var activities = JSON.parse(localStorage.getItem('activities')) || [];
    var activity = new Activity(activity_name);
    activity['current_user'] = localStorage.current_user;
    localStorage.displayed_activity = activity_name;
    activities.push(activity);
    localStorage.setItem('activities',JSON.stringify(activities));
} // 把活动存到数据库中

显示已创建活动的view:
%li.text-center(ng-repeat="activity_name in activity_names" )
  %a.list-activity-name
    {{ activity_name }} 

最后,总结一下AngularJS中实现web开发的MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
  • 大小: 18.6 KB
分享到:
评论

相关推荐

    JavaEE mvc架构模式的具体实现代码

    JavaEE MVC 字面的意思是模型(M),视图(V),控制器(C)这三块。MVC是一种面向对象的架构模式,它的基本思想是把程序界面和业务逻辑分开,这样便于软件的后期维护,同时也方便了开发时期的分工和管理。 MVC这种开发...

    基于springboot+mvc+freemarker+aop实现校友信息管理系统源码.zip

    1、基于springboot+mvc+freemarker+aop实现校友信息管理系统源码.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考...

    asp.net mvc+Bootstrap Fileinput框架实现的文件上传

    以上是关于"asp.net mvc+Bootstrap Fileinput框架实现的文件上传"的相关知识点,这个示例提供了在ASP.NET MVC环境中集成Bootstrap Fileinput进行文件上传的完整流程,对于开发者来说具有很好的参考价值。通过学习和...

    基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)

    基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)...

    MyEclipse+MVC实现登录验证(工程源码)

    本资源“MyEclipse+MVC实现登录验证(工程源码)”提供了一个具体的示例,帮助开发者理解如何在MyEclipse集成开发环境中使用MVC模式来构建一个登录验证系统。 首先,我们来深入了解一下MVC模式。MVC将应用分为三个...

    MVC的简单实现

    在提供的"MVCDemo"项目中,我们可以看到一个具体的MVC模式实现案例。通过分析源代码,我们可以更深入地了解MVC模式的每个组件是如何协同工作的。这种实现方式为后续学习和使用三大框架(Spring MVC、Struts、JSF)...

    基于springboot+mvc+freemarker+aop实现校友信息管理系统.zip

    基于springboot+mvc+freemarker+aop实现校友信息管理系统.zip基于springboot+mvc+freemarker+aop实现校友信息管理系统.zip基于springboot+mvc+freemarker+aop实现校友信息管理系统.zip基于springboot+mvc+freemarker...

    CS 下MVC模式实现

    本文将深入探讨在CS环境下MVC模式的实现,并结合源码分析其工作原理。 **一、MVC模式概述** 1. **模型(Model)**:模型是应用程序的核心部分,负责处理业务逻辑和数据管理。它与数据库或其他数据源交互,获取或...

    mvc框架性比较

    **Java MVC 框架性能比较** ...而Struts 2的性能短板主要在于其复杂的实现,而Spring MVC则在性能和开发效率上找到了较好的平衡。在选择框架时,开发者应根据项目的性能需求、团队的技术栈以及可获得的资源来做出决策。

    C++实现简单的MVC框架

    在C++中,由于面向对象的特性,MVC模式的实现往往更加灵活,可以通过继承、多态等机制来适应不同的需求。 总的来说,C++实现的MVCDemo项目为学习和理解MVC设计模式提供了一个实践平台。通过阅读和分析代码,开发者...

    MVC模式与实现

    MVC模式详解

    基于 MVC 模式的博客(BLOG)系统的设计与实现

    这些组件协同工作,实现了MVC模式下的高效开发。 #### 四、结论 基于MVC模式设计实现的博客系统具备高效、稳定和易于维护的特点。通过采用MVC设计模式和Struts框架,该系统能够有效地分离业务逻辑、数据管理和用户...

    ASP.NET MVC分页和排序功能实现

    这里,我打算使用EF Code-First方式分页控件就是用PagedList.MVC,来做分页,对于排序,实现的思路是,加载数据出来之后,默认是升序排序,然后我们点击一下相应的列标题,就按照该字段降序排序,查数据。思路明确了...

    asp.net mvc4 实现用户登录

    asp.net mvc4 实现用户的登录验证

    ASP.NET MVC Linq to SQL 实现数据库增删改(源代码)ASP.NET MVC Linq to SQL 实现数据库增删改(源代码) ASP.NET MVC 分页控件

    在这个项目中,我们将深入探讨如何在ASP.NET MVC中利用Linq to SQL来实现数据库的增、删、改操作,并结合分页控件提升用户体验。 首先,我们需要创建一个数据上下文类,这个类继承自System.Data.Linq.DataContext,...

    Qt5实现的一个mvc 的例子

    在Qt5中,我们可以通过QML或者C++来实现MVC架构。 本文将详细介绍如何使用Qt5实现一个MVC的例子,以及涉及的相关知识点。 首先,我们来理解MVC模式的基本概念: 1. Model(模型):负责处理数据和业务逻辑,它是...

    基于MVC模式的购物网的设计与实现

    和售后服务等,采用MVC模式开发购物网,可以方便地实现系统的职能分工。 Model层实现系统中的业务逻辑,View层用于与用户的交互,Controller层是 Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图...

    ASP.NET MVC 4 插件化架构简单实现

    ASP.NET MVC 4 插件化架构简单实现 ASP.NET MVC 4 插件化架构简单实现-思路篇 http://blog.csdn.net/hao_ds/article/details/42102969 ASP.NET MVC 4 插件化架构简单实现-实例篇 ...

    .NET MVC实现文件上传

    在.NET框架中,MVC(Model-View-Controller)是一种广泛使用的Web应用程序开发模式,它提供了灵活、可测试和组织良好的代码结构。本教程将详细讲解如何使用.NET MVC实现文件上传功能,这是一个常见的Web开发需求。 ...

Global site tag (gtag.js) - Google Analytics