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 相关文章推荐
Javascript中的变量使用说明
May 18 Javascript
javascript学习基础笔记之DOM对象操作
Nov 03 Javascript
30分钟就入门的正则表达式基础教程
Feb 25 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
Dec 14 Javascript
使用AngularJS处理单选框和复选框的简单方法
Jun 19 Javascript
vue.js中$watch的用法示例
Oct 04 Javascript
微信小程序 购物车简单实例
Oct 24 Javascript
react-router实现跳转传值的方法示例
May 27 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
Oct 16 Javascript
JS实现的邮箱提示补全效果示例
Jan 30 Javascript
JavaScript如何对图片进行黑白化
Apr 10 Javascript
微信小程序实现收藏与取消收藏切换图片功能
Aug 03 Javascript
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
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
2011/04/18 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
JQuery的AJAX实现文件下载的小例子
2013/05/15 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
2017/06/08 Javascript
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
浅谈Vue static 静态资源路径 和 style问题
2020/11/07 Javascript
详谈python中冒号与逗号的区别
2018/04/18 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
2020/07/02 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
美国知名平价彩妆品牌:e.l.f. Cosmetics
2017/11/20 全球购物
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
数控技校生自我鉴定
2014/04/19 职场文书
园林技术专业求职信
2014/07/28 职场文书
学雷锋献爱心倡议书
2015/04/27 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
毕业设计致谢语
2015/05/14 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang