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 相关文章推荐
Some tips of wmi scripting in jscript (1)
Apr 03 Javascript
(function($){...})(jQuery)的意思
Jul 22 Javascript
JavaScript中各种编码解码函数的区别和注意事项
Aug 19 Javascript
基于jquery的固定表头和列头的代码
May 03 Javascript
jq选项卡鼠标延迟的插件实例
May 13 Javascript
Node.js模拟浏览器文件上传示例
Mar 26 Javascript
jquery动态添加删除(tr/td)
Feb 09 Javascript
如何消除inline-block属性带来的标签间间隙
Mar 31 Javascript
从零学习node.js之搭建http服务器(二)
Feb 21 Javascript
JavaScript实现经纬度转换成地址功能
Mar 28 Javascript
微信小程序实现移动端滑动分页效果(ajax)
Jun 13 Javascript
vue-router 手势滑动触发返回功能
Sep 30 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
php中的时间显示
2007/01/18 PHP
php类的定义与继承用法实例
2015/07/07 PHP
jQuery的三种$()
2009/12/30 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
2018/05/16 Javascript
Koa 中的错误处理解析
2019/04/09 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
详解vue实现坐标拾取器功能示例
2020/11/18 Vue.js
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
python创建列表并给列表赋初始值的方法
2015/07/28 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
基于python实现雪花算法过程详解
2019/11/16 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
Keras 加载已经训练好的模型进行预测操作
2020/06/17 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
HTML5 source标签:媒介元素定义媒介资源
2018/01/29 HTML / CSS
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
先进集体获奖感言
2014/02/13 职场文书
《与象共舞》教学反思
2014/02/24 职场文书
2014年环卫工作总结
2014/11/22 职场文书
给校长的建议书范文
2015/09/14 职场文书