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. 基于Dedup的数据打包技术

    基于Dedup的数据打包技术 0.引言    Tar, winrar, winzip是最为常见的数据打包工具软件,它们把文件集体封装成一个单独的数据包,从而方便数据的分布.传输.归档以及持久保存等目的 ...

  2. tensorflow函数学习笔记

    https://www.w3cschool.cn/tensorflow_python/tensorflow_python-4isv2ez3.html tf.trainable_variables返回的 ...

  3. 关于IOC和DI的理解

    IOC:Inversion of Control 控制反转 DI:Dependency Injection 依赖注入 控制反转,从字面意思来看,就是控制权又被动变主动,最后又变回被动. 举个例子: 你 ...

  4. TypeError: datetime.datetime(2016, 9, 25, 21, 12, 19, 135649) is not JSON serializable解决办法(json无法序列化对象的解决办法)

    1.一个简单的方法来修补json模块,这样序列将支持日期时间. import json import datetime json.JSONEncoder.default = lambda self, ...

  5. 在windows下编译x264

    最近因为各种原因,对流媒体的学习,突然中断在了编码这块.今天难得静下心来,从新拿起了代码. 对encode这边,因为之前虽然也接触了,也找了两个例子,但目前还没真正开始,所以先从编译x264这个库开始 ...

  6. (转)SDL2.0在mfc窗口中显示yuv的一种方法

    DWORD ThreadFun() {    //用mfc窗口句柄创建一个sdl window    SDL_Window * pWindow = SDL_CreateWindowFrom( (voi ...

  7. perl 实现ascall 码转换

    今天需要在perl中实现一个字母表, 总不能把26个字母一个一个写出来,于是查资料,可以利用ascii码转换把数字转换成对应的字母 chr函数可以利用ascii编码把数字转换成对应的字母 perl - ...

  8. tarjan算法-解决有向图中求强连通分量的利器

    小引 看到这个名词-tarjan,大家首先想到的肯定是又是一个以外国人名字命名的算法.说实话真的是很佩服那些算法大牛们,佩服得简直是五体投地啊.今天就遇到一道与求解有向图中强连通分量的问题,我的思路就 ...

  9. HttpHelper万能框架GetMergeCookie的问题

    用万能框架写了一个DZ带验证码POST登录一直错误 http://www.sufeinet.com/thread-17795-1-1.html 调试半天发现是框架GetMergeCookie的问题,, ...

  10. 学习 TList 类的实现[2]

    我原来以为 TList 可能是一个链表, 其实只是一个数组而已. 你知道它包含着多大一个数组吗? MaxListSize 个!MaxListSize 是 Delphi 在 Classes 单元定义的一 ...