2019独角兽企业重金招聘Python工程师标准>>>

一.名词解释:MVC、MVVM和MVW

MVC:Model-View-Controller,模型-视图-控制器,核心思想:把数据的管理、业务逻辑控制和数据的展示分离开。

MVVM:Model-View-ViewModel,MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。ViewModel包含所有由UI特定的接口和属性,并由一个 ViewModel 的视图的绑定属性,并可获得二者之间的松散耦合,所以需要在ViewModel 直接更新视图中编写相应代码。

MVW:Model-View-Whatever,不管是MVC还是MVVM,无论什么(Whatever)都行。

讲了这么多,选择一个适合团队的模式进行开发才是正道,突破局限。

二.AngularJS控制器

        function UserInfoDemo($scope,$log){$scope.name = "admin";$scope.password = "111111";$log.info("UserInfoController->name:"+$scope.name);$log.info("UserInfoController->password:"+$scope.password);}var app = angular.module("app",[]);app.controller("UserInfoController",UserInfoDemo);// 声明一个控制器

1.控制器定义

如上所示,使用模块实例的controller()方法来声明一个控制器,接收两个参数:第一个是控制器名称(自定义名称),第二个是方法名称(可以是匿名方法)

2.使用模块实例:用angular对象的module()方法返回一个模块实例。

3.控制器构造方法的两个参数:$scope、$log

(1)$scope是作用域对象,是控制器与视图之间传递信息的载体;

(2)$log是AngularJS框架内置的日志服务对象,用于向控制台输入日志信息。

向控制器构造方法指定参数后,控制器将依赖这两个对象,控制器实例化的时候会把两个对象注入控制器中。

4.ng-controller指令

内置指令,用于实例化控制器对象,当AngularJS框架解析到ng-controller指令时会查找名为指定名称的构造方法实例化构造器对象。
    可作为标签的扩展属性使用:支持使用as语法指定控制器对象名称。

<div  ng-controller="CalcController as calc">

使用注意作用域的范围:每个控制器对应的作用域对象只能与ng-controller指令所在标签的开始标签与结束标签之间的DOM元素建立数据绑定。

5.控制器中处理DOM事件

DOM事件处理可以在控制器中完成,AngularJS提供了很多事件绑定指令:ng-click、ng-keyup等。

<button ng-click="login()" type="submit" class="btn btn-sm btn-info">登录</button>function loginControllerFunc($scope,$log){$scope.login = function(){// 控制器向作用域中注册方法$log.info("LoginController->name:"+$scope.uname);$log.info("LoginController->password:"+$scope.pword);if($scope.uname=="admin"&&$scope.pword=="admin1"){alert("登录成功!");}else{alert("用户名密码错误!");}}}

三.控制器中的一个细节问题

在控制器中定义方法时:如果在控制器的方法里面使用 this.方法名 定义时,调用方法的时候使用 {{控制器名称.方法名}} ;如果在控制器的方法里面使用 $scope.方法名 定义时,调用方法的时候可以直接使用 {{方法名}}:

            <div>运算结果:{{calc.totalPrice()}}</div>this.totalResult = function(){$log.info("CalcController->name:"+$scope.name);$log.info("CalcController->password:"+$scope.password);return $scope.mult*$scope.multee;}<div>运算结果:{{totalPrice()}}</div>$scope.totalResult = function(){$log.info("CalcController->name:"+$scope.name);$log.info("CalcController->password:"+$scope.password);return $scope.mult*$scope.multee;}

代码和笔记放在码云上:AngularJS学习笔记和代码

转载于:https://my.oschina.net/javamaster/blog/1634316

AngularJS第三课:MVW与控制器相关推荐

  1. 第三课 k8s源码学习和二次开发-缓存机制Informers和Reflector组件学习

    第三课 k8s源码学习和二次开发-缓存机制Informers和Reflector组件学习 tags: k8s 源码学习 categories: 源码学习 二次开发 文章目录 第三课 k8s源码学习和二 ...

  2. 第三课.运算符与表达式

    第三课目录 运算符与表达式 算术运算符 关系运算符 逻辑运算符 德摩根律 使用断言assert 位运算符 补码 补码与位运算 赋值运算符 杂项运算符 运算符与表达式 数学是科技发展的基础,数学公式的意 ...

  3. 第三课.Linux代码编辑器

    第三课目录 vi/vim vi/vim简介 vi的模式 vi在命令模式下的操作 vi在底线命令模式下的操作 Visual Studio Code Git git简介 关于git的故事 git的使用 v ...

  4. 对于STM32F103三轴机械臂控制器进行基本功能测试-关节角度读取

    ➤01 机械臂调试 1.简介 对 基于STM32对于三轴机械臂控制器设计 中对应的控制电路读取肩部和肘部两个 角度编码器 ST-3806-15-RS 数据进行调试. 2.接口电路1 ▲ 角度读取的相关 ...

  5. 对于STM32F103三轴机械臂控制器进行基本功能测试-上下运动功能

    简 介: 本文针对基于在基于STM32对于三轴机械臂控制器设计 中设计了控制电路板.本文记录对其在机械臂实际部件进行调试的过程. 关键词: STM32F103,机械臂,三轴,上下运动 ➤01 机械臂控 ...

  6. 基于STM32对于三轴机械臂控制器设计

    简 介: 本文使用了STM32对于一款三轴机械臂进行初步驱动,调试他的各个关节的运动情况. 关键词: 机械臂,三轴机械臂,STM32 ➤ 01背景 在 组装肩部带有减速器双轴机械臂组装与调试 的调试基 ...

  7. 0.0 目录-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授

    文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...

  8. 【C语言探索之旅】第三部分第三课:SDL开发游戏之显示图像

    内容简介 1.第三部分第三课: SDL开发游戏之显示图像 2.第三部分第四课预告: SDL开发游戏之事件处理 第三部分第三课:SDL开发游戏之显示图像 上一课中,我们学习了如何加载SDL库(SDL_I ...

  9. 矩阵理论及其应用_有限元分析ansys理论与应用视频第三课 绪论:直接法矩阵求解...

    我们拒绝关注获取资源的行为, 我们拒绝分享文章获取资源的行为, 我们拒绝收费获取资源的行为, 我们拒绝一切套路. 是否关注是大家的自由, 我们只为努力分享机械行业资源, 让更多的学习者受益. 本期视频 ...

最新文章

  1. 通过案例练习掌握SSH 的整合
  2. 人群计数--Mixture of Counting CNNs
  3. 《梦醒黄金城》主创暨明星见面会举办 预计2019年完成拍摄
  4. [新闻]Ubuntu7.04于4月19日全球同步发布
  5. 表格过滤器_不用记账软件也可以记录支出明细,这个在线协同表格很方便
  6. JSP引入CSS文件无法生效的问题
  7. 《网友世界》杂志:2010“最不给力”软件
  8. jQuery 遍历 - children() 方法
  9. JMeter使用命令行模式生成HTML测试报告
  10. 几种c++字符串split 函数实现的比较
  11. linux db2升级,linux 下 db2 v97 升级到db2 v10.1 实战
  12. Zabbix添加Windows server 2012
  13. 谈谈认证中的黄埔军---信息安全认证(CISP与CISSP)
  14. 阿里云香港云服务器ECS适合什么场景?
  15. 外贸公司怎么做开发信,什么企业邮箱更适合发开发信呢?
  16. 实验2:MIPS指令系统和MIPS体系结构
  17. android跑马灯效果不起作用,Android跑马灯效果失效问题
  18. 人间不值得计算机谱子,黄诗扶《人间不值得》简谱
  19. 工业数据分析为什么要用FusionInsight MRS IoTDB?
  20. NR 物理层编码 - slide 3 循环码Cyclic Code

热门文章

  1. 企业微信推送消息延迟_微信接收消息总是延迟?没有提醒,这3个功能赶紧设置一下...
  2. 在router中使用pinia报错解决
  3. ros学习(2-2):ros节点创建(python)
  4. android studio高德地图的显示于定位(附带逆地理编码围栏)
  5. 腾讯 2022 校招大厂薪资首发,白菜总包接近 40w!
  6. 改变ubutun 默认配色
  7. 生产制造企业用的ERP系统——流程管理
  8. android x86虚拟机不识别网卡,科学网-AndroidSDK-虚拟机之Intel x86虚拟机安装-几个错误解决方法-联网-马飞的博文...
  9. OMAPL138报Error connecting to the target:Connect to PRSC failed解决办法
  10. canvas实现简单进度条