mvc 思想

将应用程序的组成,划分为三个部分:model , controller 和 view ;

- 控制器的作用是用来初始化模型用的;

- 模型就是用于存储数据的;

- 视图是展示数据的;

例如:登录案例:

模型:

- 我们数据库中存储所有的用户信息

- 接受控制器传过来的用户名和密码进行校验的业务逻辑,返回 true / false ;

控制器:

- 接受用户再页面填写的用户名和密码;

- 将用户名和密码提交给模型;

视图:

- 给用户呈现一个表单;

- 接受用户输入的信息,并将其提交给控制器;

angularJs创建模块

// 注册模块, 通过module函数
// 第一个参数是这个模块的名字
// 第二个参数是这个模块所依赖的模块
// 如果不依赖任何模块也必须传递第二个参数,如果没有传递第二个参数,angular.module就不是创建一个模块
// angular.module 返回 刚刚创建的模块对象
<script type="text/javascript">
// 创建一个名字叫 myApp的模块,第二个参数是该模块所依赖的模块
var myApp = angular.module("myApp",[]);
</script>
<script type="text/javascript">
// 创建一个名字叫 myApp的模块,第二个参数是该模块所依赖的模块
angular.module("myApp",[])
.controller("myAppController",['$scope',function($scope){
$scope.user = {
name:'小三',
};
}]);
</script>

如果需要通过某一个模块去管理某一个应用:

<div ng-app="myApp" ng-controller="myAppController">
<span>{{title}}</span>
<span>{{user.name}}</span>
<span>{{userOne.name}}</span>
<input type="button" value="点我啊" ng-click="show()">
</div>
<script type="text/javascript">
// 创建一个名字叫 myApp的模块,第二个参数是该模块所依赖的模块
var myApp = angular.module("myApp",[])
myApp.controller("myAppController",['$scope',function($scope){
$scope.title = "欢迎光临!";
$scope.user = {};
$scope.user.name = "小三";
$scope.user.password = "123";
$scope.userOne = {
name:'小四',
password:'456'
};
$scope.show = function(){
alert($scope.user.name);
alert($scope.userOne.name);
};
}]);
</script>
angular.module 不但可以帮助我们创建一个模块,也可以帮助我们取得一个模块:
这里传递一个参数是获取,传递两个参数是创建(就像上面的就是创建):
<script type="text/javascript">
angular.module("myApp")
angular.module("myApp").controller("myAppController",['$scope',function($scope){}]);
</script>

模块中的 $scope 是固定的,每一个都有不同的含义:(传递多个示例)

<script type="text/javascript">
module.controller('myAppController',['$scope','$http',function($scope,$http){
console.log($scope);
console.log($http);
}]);
</script>

angularJS 的控制器(Controller)

主要三种职责:

- 为应用中的模型设置初始状态;

- 通过$scope对象把数据模型或函数行为暴露给视图

- 监视模型变化,做出相应的动作

<script type="text/javascript">
// 监视购物车的内容变化 计算最新的结果
$scope.$watch($scope.totalCart,calculateDiscount);
</script>

监视小案例:(注册登录的时候,长度太短出现提示信息)

<div ng-app="myApp" ng-controller="myAppController">
<input type="text" ng-model='user.name'>&nbsp;&nbsp;<span style='color:red;'>{{message}}</span>
</div>
<script type="text/javascript">
var myApp = angular.module('myApp',[]);
myApp.controller('myAppController',['$scope',function($scope){
$scope.user = {};
$scope.message = '';
$scope.user.name = "";
//固定参数 现在的值和前面的值
$scope.$watch('user.name',function(now,old){
//监听 user.name
//console.log(now);
//console.log(old);
if(now){
console.log(now.length);
if(now.length<7){
$scope.message = "请输入合法的用户名";
}else{
$scope.message = "验证通过";
}
}else{
$scope.message = "请输入用户名";
};
});
}]);
</script>

angularJS中的MVC思想?的更多相关文章

  1. AngularJS中的MVC模式

    MVC根据逻辑关系,把前端项目的代码分为三个层次 model:模型,就是业务数据,前端项目中就是JS变量. view:视图,就是业务数据在用户面前的展现,前端项目中就是HTML. controller ...

  2. angular中的MVC思想

    MVC是一种使用 MVC(Model View Controller 模型-视图-控制器)设计模式,该模型的理念也被许多框架所吸纳.在学习angular的过程中,我在网上查找关于angular MVC ...

  3. 深入学习AngularJS中数据的双向绑定机制

    来自:http://www.jb51.net/article/80454.htm Angular JS (Angular.JS) 是一组用来开发Web页面的框架.模板以及数据绑定和丰富UI组件.它支持 ...

  4. AngularJS中使用Directive、Controller、Service

    AngularJS是一款非常强大的前端MVC框架.同时,它也引入了相当多的概念,这些概念我们可能不是太熟悉. (1)Directive 指令 (2)Controller 控制器 (3)Service ...

  5. [译]ABP框架使用AngularJs,ASP.NET MVC,Web API和EntityFramework构建N层架构的SPA应用程序

    本文转自:http://www.skcode.cn/archives/281 本文演示ABP框架如何使用AngularJs,ASP.NET MVC,Web API 和EntityFramework构建 ...

  6. 30行代码实现Javascript中的MVC

    从09年左右开始,MVC逐渐在前端领域大放异彩,并终于在刚刚过去的2015年随着React Native的推出而迎来大爆发:AngularJS.EmberJS.Backbone.ReactJS.Rio ...

  7. AngularJS学习--- AngularJS中的模板template和迭代器过滤filter step2 step3

    1.AngularJS 模板---step2: mvc(Model-View-Controller)模式在后端用的比较多,在前端也是一样的常用; 在AngularJS中,一个视图是模型通过HTML模板 ...

  8. 二十七、EFW框架BS系统开发中的MVC模式探讨

    回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...

  9. java web mvc思想介绍

    1.首先简介一下什么是MVC思想. 在百度百科里面对MVC的说明,MVC全名是Model View Controller.是模型(model)-视图(view)-控制器(controller)的缩写. ...

随机推荐

  1. android listview 总结

    ScrollView与ListView冲突: public class MyExpandableListView extends ExpandableListView { public MyExpan ...

  2. 关于Unity中的定时器和委托

    一.Invoke定时器 有3种定时器,这里我们讲Invoke 1.创建一个Canvas 2.对Canvas进行初始化 3.创建一个Image的UI节点作为Canvas的子节点,名字叫bg,拖进背景图片 ...

  3. sh脚本循环

    sh for循环 for File in 1 2 3 4 5 do echo $File done sh for多重循环 for image_size_input in 160 140 120 100 ...

  4. bootstrap -- css -- 文字、列表

    文字 <small></small>:呈现小号字体效果. <big></big>:程序大号字体效果 <abbr></abbr>: ...

  5. [转]JVM性能调优监控工具

    http://my.oschina.net/feichexia/blog/196575?p=1#comments JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jCo ...

  6. 属性编辑器,即PropertyEditor-->Spring IoC

    在Spring配置文件里,我们往往通过字面值为Bean各种类型的属性提供设置值:不管是double类型还是int类型,在配置文件中都对应字符串类型的字面值.BeanWrapper填充Bean属性时如何 ...

  7. Word揭秘:公式还能这么玩!

    如今办公室里用Word来处理资料文档一种再普遍不过的现象了,学校的老师出试卷也离不开它.用Word编辑公式也是一个非常的技巧,玩转Word的同时,你玩转公式了吗?想要在Word中编辑公式,可不是说说就 ...

  8. 搭建 FTP 文件服务vsftpd

    安装并启动 FTP 服务 安装 VSFTPD 使用 yum 安装 vsftpd: yum install vsftpd -y vsftpd 是在 Linux 上被广泛使用的 FTP 服务器,根据其[官 ...

  9. shell中判断一个变量是否为0或者为某个具体的值

    需求说明: 在实际写脚本的过程中,需要判断某个变量的值是否为某个数字, 比如,判断某个进程的数量是否为0用来确定进程是否存在,这样的情况. 简单来说,算术比较. 测试过程: 通过以下的脚本来判断mys ...

  10. wsdl.exe的用法与参数说明

    wsdl.exe的用法与参数说明 打开.net自己带的Visual Studio .NET 2003或 2005 命令提示 输入 wsdl /language:VB /n:mynamespace /o ...