AngularJS入门教程之MVC架构实例分析


Posted in Javascript onNovember 01, 2016

本文实例讲述了AngularJS的MVC架构。分享给大家供大家参考,具体如下:

MVC应用程序架构最早于1970年起源于Smalltalk语言,后来在桌面应用程序开发中使用较为广泛,如今在WEB开发中也非常流行。MVC的核心思想是?⑹?莸墓芾恚?odel)、业务逻辑控制(Controller)和数据的展示(View)分离开来,使程序的逻辑性和可维护性更强。

对于AngularJS应用来说,视图(View)是DOM(文档对象模型),你可以理解为就是HTML页面。控制器(Controller)是一个用户自定义的JavaScript类。模型数据(Model)存储在对象的属性中。

我们来看下面的代码:

<!DOCTYPE html>
<html ng-app>
<head lang="en">
 <meta charset="UTF-8">
 <script type="text/javascript" src="angular-1.3.0.14/angular.js"></script>
 <title>tutorial03</title>
</head>
<body>
<div ng-controller="UserController">
 用户名:<input type="text" ng-model="name" placeholder="用户名"/>
 密码:<input type="password" ng-model="pword" placeholder="密码"/>
 <button ng-click="login()">提交</button>
 <p>您输入的用户名:{{name}}</p>
 <p>您输入的密码:{{pword}}</p>
</div>
<script>
 function UserController ($scope,$log)
 {
  $scope.name="admin";
  $scope.pword="123456";
  $log.info( $scope.name);
  $log.info( $scope.pword);
  $scope.login = function()
  {
   alert("登录");
  }
 }
</script>
</body>
</html>

我们在前面一篇《AngularJS入门教程之数据绑定用法示例》代码的基础上进行修改,我们通过ng-controller指令声明一个控制器,名称为UserController,它所在的div开始标签和结束标签之间的部分都由该控制器来管理。

function UserController...为控制器定义部分,这里我们依靠AngularJs依赖注入系统以参数的形式向控制器中注入$scope和$log对象。$scope为模型数据对象,前面有提到过,ng-model的作用就是为$scope对象添加一个属性和表单元素绑定。$log对象用于在浏览器控制台中输出调试信息。

在控制器中可以做一些初始化工作,例如这里我们?⒂没??兔苈胛谋究蛑械哪谌莩跏蓟???dmin”,”123456”。还可用于事件处理,我们通过ng-click指令声明按钮的点击事件处理函数为login(),在控制器中通过$scope.login = function()...进行事件绑定。

在浏览器中运行可以看到效果如下:

AngularJS入门教程之MVC架构实例分析

页面加载时文本框中内容被初始化,点击提交弹出对话框。

AngularJs的控制器的作用域仅限于ng-controller所在的元素开始标签和结束标签之间的部分,为了证明这个结论我们再增加一个控制器,代码如下:

<!DOCTYPE html>
<html ng-app>
<head lang="en">
 <meta charset="UTF-8">
 <script type="text/javascript" src="angular-1.3.0.14/angular.js"></script>
 <title>tutorial03</title>
</head>
<body>
<div ng-controller="UserController" style="border:#ccc solid 1px;">
 用户名:<input type="text" ng-model="name" placeholder="用户名"/>
 密码:<input type="password" ng-model="pword" placeholder="密码"/>
 <button ng-click="login()">提交</button>
 <p>您输入的用户名:{{name}}</p>
 <p>您输入的密码:{{pword}}</p>
</div>
<br/>
<div ng-controller="InfoContoller" style="border:#ccc solid 1px;">
 个人爱好:<input type="text" ng-model="love" placeholder="个人爱好"/>
 <p>您输入的个人爱好:{{love}}</p>
</div>
<script>
 function UserController($scope,$log)
 {
  $scope.name="admin";
  $scope.pword="123456";
  $scope.login = function()
  {
   alert("登录");
  }
 }
 function InfoContoller($scope,$log)
 {
  $scope.love="足球";
  $log.info($scope.name);
  $log.info($scope.pword);
  $log.info($scope.love);
 }
</script>
</body>
</html>

由于name和pword不是在InfoContoller控制器中定义的,我们在控制台中输出$scope.name和$scope.pword显示为undefined.

AngularJS入门教程之MVC架构实例分析

AngularJS源码可点击此处本站下载

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
IE和firefox浏览器的event事件兼容性汇总
Dec 06 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
May 23 Javascript
浏览器加载、渲染和解析过程黑箱简析
Nov 29 Javascript
探讨javascript是不是面向对象的语言
Nov 21 Javascript
Javascript中Date类型和Math类型详解
Feb 27 Javascript
JS触发服务器控件的单击事件(详解)
Aug 06 Javascript
js实现图片左右滚动效果
Feb 27 Javascript
在vue中安装使用vux的教程详解
Sep 16 Javascript
pageGroup.js实现分页功能
Jul 27 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
Aug 20 Javascript
Vue 实现一个命令式弹窗组件功能
Sep 25 Javascript
vue项目proxyTable配置和部署服务器
Apr 14 Vue.js
bootstrap table复杂操作代码
Nov 01 #Javascript
bootstrap flask登录页面编写实例
Nov 01 #Javascript
JS弹出窗口的运用与技巧大全
Nov 01 #Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
Nov 01 #Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
Nov 01 #Javascript
AngularJS入门教程之数据绑定用法示例
Nov 01 #Javascript
jQuery动态生成Bootstrap表格
Nov 01 #Javascript
You might like
PHP的几个常用数字判断函数代码
2012/04/24 PHP
深入PHP数据缓存的使用说明
2013/05/10 PHP
Symfony2实现在doctrine中内置数据的方法
2016/02/05 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
PHP如何开启Opcache功能提升程序处理效率
2020/04/27 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
JQuery的html(data)方法与&amp;lt;script&amp;gt;脚本块的解决方法
2010/03/09 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
Javascript中innerHTML用法实例分析
2015/01/12 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
JQuery的Pager分页器实现代码
2016/05/03 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
python 除法保留两位小数点的方法
2018/07/16 Python
用Python将Excel数据导入到SQL Server的例子
2019/08/24 Python
Python进行统计建模
2020/08/10 Python
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
环保倡议书格式范文
2014/05/14 职场文书
中国梦团日活动总结
2014/07/07 职场文书
初中同学会活动方案
2014/08/22 职场文书
工会文体活动总结
2015/05/07 职场文书
养成教育工作总结
2015/08/13 职场文书
学习经验交流会总结
2015/11/02 职场文书