angularJS中的MVC思想?
mvc 思想:
将应用程序的组成,划分为三个部分:model , controller 和 view ;
- 控制器的作用是用来初始化模型用的;
- 模型就是用于存储数据的;
- 视图是展示数据的;
例如:登录案例:
模型:
- 我们数据库中存储所有的用户信息
- 接受控制器传过来的用户名和密码进行校验的业务逻辑,返回 true / false ;
控制器:
- 接受用户再页面填写的用户名和密码;
- 将用户名和密码提交给模型;
视图:
- 给用户呈现一个表单;
- 接受用户输入的信息,并将其提交给控制器;
angularJs创建模块:
<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>
<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'> <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思想?的更多相关文章
- AngularJS中的MVC模式
MVC根据逻辑关系,把前端项目的代码分为三个层次 model:模型,就是业务数据,前端项目中就是JS变量. view:视图,就是业务数据在用户面前的展现,前端项目中就是HTML. controller ...
- angular中的MVC思想
MVC是一种使用 MVC(Model View Controller 模型-视图-控制器)设计模式,该模型的理念也被许多框架所吸纳.在学习angular的过程中,我在网上查找关于angular MVC ...
- 深入学习AngularJS中数据的双向绑定机制
来自:http://www.jb51.net/article/80454.htm Angular JS (Angular.JS) 是一组用来开发Web页面的框架.模板以及数据绑定和丰富UI组件.它支持 ...
- AngularJS中使用Directive、Controller、Service
AngularJS是一款非常强大的前端MVC框架.同时,它也引入了相当多的概念,这些概念我们可能不是太熟悉. (1)Directive 指令 (2)Controller 控制器 (3)Service ...
- [译]ABP框架使用AngularJs,ASP.NET MVC,Web API和EntityFramework构建N层架构的SPA应用程序
本文转自:http://www.skcode.cn/archives/281 本文演示ABP框架如何使用AngularJs,ASP.NET MVC,Web API 和EntityFramework构建 ...
- 30行代码实现Javascript中的MVC
从09年左右开始,MVC逐渐在前端领域大放异彩,并终于在刚刚过去的2015年随着React Native的推出而迎来大爆发:AngularJS.EmberJS.Backbone.ReactJS.Rio ...
- AngularJS学习--- AngularJS中的模板template和迭代器过滤filter step2 step3
1.AngularJS 模板---step2: mvc(Model-View-Controller)模式在后端用的比较多,在前端也是一样的常用; 在AngularJS中,一个视图是模型通过HTML模板 ...
- 二十七、EFW框架BS系统开发中的MVC模式探讨
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...
- java web mvc思想介绍
1.首先简介一下什么是MVC思想. 在百度百科里面对MVC的说明,MVC全名是Model View Controller.是模型(model)-视图(view)-控制器(controller)的缩写. ...
随机推荐
- 外部引用CSS中 link与@import的区别
差别1:link属于XHTML标签,而@import完全是CSS提供的一种方式. link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性等,@import就只能加 ...
- B树、Trie树详解
查找(二) 散列表 散列表是普通数组概念的推广.由于对普通数组可以直接寻址,使得能在O(1)时间内访问数组中的任意位置.在散列表中,不是直接把关键字作为数组的下标,而是根据关键字计算出相应的下标. 使 ...
- 几种常见的DIV边框样式
<html> <head> <title>边框样式</title> </head> <body> <p style=bor ...
- 使用GitHub和Eclipse进行javaEE开发步骤
下载Git客户端:链接:http://pan.baidu.com/s/1jIueUEy 密码:7gef; 下载Eclipse javaee客户端:http://www.eclipse.org/down ...
- Spring-导入和混合配置
javaConfig模式下: 导入: @Import({XX.class,YY.class,...}) 混合: @ImportResource("classpath:xxx.xml" ...
- jquery-根据现有结果集得到另一个结果集(后代、祖先或兄弟元素)
1.获取后代元素 1)children() 不传参数:得到结果集内所有元素的子元素 传入选择器:得到结果集内元素的匹配传入选择器的子元素 2)find() 传入选择器:得到匹配选择器的后代元素 传入j ...
- iftop、ifstat详解
ifstat 介绍 ifstat工具是个网络接口监测工具,比较简单看网络流量 实例 默认使用 #ifstat eth0 eth1 KB/s in KB/s out KB/s in KB/s out 0 ...
- html5实现刮刮卡效果
通过Canvas实现的可刮涂层效果. 修改img.src时涂层也会自动适应新图片的尺寸. 修改layer函数可更改涂层样式. 涂层: 可刮效果: 以下是HTML源代码(已增加移动设备支持): 1 2 ...
- linux定时任务cron 安装配置
名词解释: cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表. 软件包安装: 要使用cron服务,先要安装vixie-cron软件包和crontabs软件包,两个软件包作 ...
- mysqldump如何针对某些数据库进行备份?针对某个数据库进行备份?
需求描述: 通过mysqldump工具对mysql服务器中的某几个数据库进行备份. 或者就对其中的一个数据库进行备份. 操作过程: 1.通过--databases参数后面加上数据库的名字进行备份 [m ...