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)的缩写. ...
随机推荐
- 第二百八十四节,MySQL数据库-MySQL触发器
MySQL数据库-MySQL触发器 对某个表进行[增/删/改]操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行[增/删/改]前后的行为. 1.创建触发器基本语法 ...
- windows 解压缩命令
首先安装winrar 压缩: 命令:start winrar a test test.py 解压: 命令:start winrar x -y test.rar F:\batShell\test\tes ...
- MySQL创建用户、授权、撤销权限、删除用户
一.创建用户 mysql -u root -p 1.mysql->create user 'test'@'localhost' identified by '123'; 2.mysql-> ...
- vector 排序
#include <vector> #include <algorithm> 一.vector保存的是基础数据类型(int.char.float等) vector<int ...
- ueditor1.4.3配置过程(包含单独上传文件以及图片的使用),ueditor1.4.3上传配置(转 http://www.bkjia.com/webzh/1001016.html)
这里使用的是ueditor1.4.3的jsp版本的UTF-8版本. 首先下载相应的ueditor,将ueditor文件夹直接拷贝到项目中,文件结构如下所示: 然后将项目要用的jar包导入到lib目录下 ...
- WinSock1.1和WinSock2.0
网络编程很重要,说到网络编程就不得不提Socket编程. Windows提供了Windows Socket API(简称WSA),WinSock,目前有两个版本:WinSock1.1 and WinS ...
- mybatis由浅入深day02_7.4mybatis整合ehcache_7.5二级缓存应用场景_7.6二级缓存局限性
7.4 mybatis整合ehcache EhCache 是一个纯Java的进程内缓存框架,是一种广泛使用的开源Java分布式缓存,具有快速.精干等特点,是Hibernate中默认的CacheProv ...
- python2.0_s12_day9_协程&多线程和cpu,磁盘io之间的关系
事件驱动和异步io有什么直接关系. 当我们访问一个网页,不考虑网络问题.我们人类不觉得网页慢. 但是实际中对计算机来说还是慢.那慢在哪里.io io操作是整个网络操作中最慢的.比如你打开网页要是有2秒 ...
- docker学习-运行第一个docker镜像hello world
docker pull [OPTIONS] NAME[:TAG]:从远程仓库拉取一个镜像到本地,NAME是要拉取的镜像的名称,TAG是docker镜像的版本,不指定的话默认是最新版本 docker ...
- mac 安装mysql 修改密码
我草!!! 上网查资料,安装mysql,一大推废话,简直就是他妈的瞎扯淡,真是能他妈的瞎编,草! 为了不让后面的同学看到那些狗屁不通的资料,我把自己安装mysql的步骤,以及修改mysql密码的方法梳 ...