angularJs的四大特性

①.采用MVC的设计模式

②.双向数据绑定

③.依赖注入

④.模块化设计

现在细说一下MVC的设计模式:

MVC:

  Model(模型)——项目中的数据

  View(视图)——数据的呈现

  Controller(控制器)——获取模型数据,选择视图加以呈现。

  整个MVC的流程也就是上图的样子,用户行为触发控制器,然后改变模型数据,经过模型的处理,更新相关的视图。形成MVC的环流。下面具体说一下AngularJS中如何实现MVC的步骤的。 

  使用ng的MVC的基本步骤:
  ①声明一个模块
    var app = angular.module('模块名字',[依赖列表])
  ②注册模块
    ng-app='模块名字'
  ③声明控制器
    app.controller("控制器的名字",func)
  ④使用控制器
    <ANY ng-controller='控制器的名字'></ANY>
  ⑤操作模型数据
    $scope对象去定义模型数据: $scope.name='mini_fan'
    $scope是建立模型数据和视图的桥梁

下面做一个购物车的练习来熟悉一下MVC的步骤

  目标:创建一个简易的购物车,可以显示、添加、删除购物车内的购物信息

  实现结果是:

  功能1:显示            功能2:添加          功能3:删除

    

 <!DOCTYPE html>
 <!--2.通过ngApp指令 完成模块的注册-->
 <html ng-app="myModule">
 <head lang="en">
   <meta charset="UTF-8">
   <title></title>
   <script src="js/angular.js"></script>
 </head>
 <!--4.在body被加载的时候,会去执行myCtrl控制器-->
 <body ng-controller="myCtrl">

 <table>
   <thead>
   <tr>
     <th>单价</th>
     <th>数量</th>
     <th>小计</th>
     <th>删除</th>
   </tr>
   </thead>

   <tbody>
   <tr ng-repeat="tmp in cart track by $index">
     <td>{{tmp.price}}</td>
     <td>{{tmp.num}}</td>
     <td>{{tmp.price*tmp.num}}</td>
     <td><button ng-click="deleteCart($index)">删除</button></td>
   </tr>
   </tbody>
 </table>
 <button ng-click="addCart()">添加</button>
 <script>
 //    1.声明一个模块
   var app = angular.module('myModule', ['ng']);
 //    3.控制器的声明
   app.controller('myCtrl', function ($scope) {
         //    5.操作模型数据
     $scope.cart = [
       {price: 4, num: 2},
       {price: 9, num: 1},
       {price: 5, num: 3}
     ];
         $scope.deleteCart=function($index){
             $scope.cart.splice($index,1);
         }
         $scope.addCart=function(){
             $scope.cart.push({price:4,num:2});
         }
   });
 </script>
 </body>
 </html>

AngularJs学习笔记2——四大特性之MVC的更多相关文章

  1. AngularJs学习笔记7——四大特性之模块化设计

    模块化设计 1.引用自定义模块并调用 自定义模块中,如果有一些服务.封装好笑模块,在另外一个模块中(声明的时候,在依赖列表中加入要引入的模块) var app02 = angular.module(' ...

  2. AngularJs学习笔记6——四大特性之依赖注入

    压缩工具:YUI-compressor 为了优化网页功能,对一些脚本文件进行压缩,比如:删除所有的注释和空格等,简化形参.但是AngularJs模块中可以声明多种组件,如控制器.指令.过滤器.服务等. ...

  3. AngularJs学习笔记4——四大特性之双向数据绑定

    双向数据绑定 方向1:模型数据(model)绑定到视图(view) 实现方法:①.{{model变量名}}  ②.常用指令(ng-repeat) 方向2:将视图(view)中用户输入的数据绑定到模型数 ...

  4. AngularJs学习笔记--Forms

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/forms 控件(input.select.textarea)是用户输入数据的一种方式.Form(表单) ...

  5. AngularJs学习笔记--concepts(概念)

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/concepts 继续.. 一.总括 本文主要是angular组件(components)的概览,并说明 ...

  6. AngularJS学习笔记2——AngularJS的初始化

    本文主要介绍AngularJS的自动初始化以及在必要的适合如何手动初始化. Angular <script> Tag 下面通过一小段代码来介绍推荐的自动初始化过程: <!doctyp ...

  7. AngularJs学习笔记--Using $location

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/dev_guide.services.$location 一.What does it do? $loc ...

  8. AngularJs学习笔记--Injecting Services Into Controllers

    原版地址:http://docs.angularjs.org/guide/dev_guide.services.injecting_controllers 把service当作被依赖的资源加载到con ...

  9. AngularJs学习笔记--I18n/L10n

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/i18n 一.I18n and L10n in AngularJS 1. 什么是I18n和L10n? 国 ...

随机推荐

  1. 使用AudioTrack播放PCM音频数据(android)

    众所周知,Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的.MediaPl ...

  2. OD: Windows Security Techniques & GS Bypassing via C++ Virtual Function

    Windows 安全机制 漏洞的万源之本在于冯诺依曼设计的计算机模型没有将代码和数据进行区分——病毒.加壳脱壳.shellcode.跨站脚本攻击.SQL注入等都是因为计算机把数据和代码混淆这一天然缺陷 ...

  3. 在Ubuntu下的Apache上建立新的website,以及enable mono

    1. 在Apache下建立新的web site a. $>cd /etc/apache2/ b. $>vi ports.conf 填加Listen 8090(注意不要打开8080,因为To ...

  4. Java 坦克小游戏心得

    原本是闲得慌无聊才去尝试做这个项目的,因为小时候玩小霸王的游戏机,那个时候经常玩这个游戏吧,特别是喜欢那种自定义地图的模式,觉得自由度非常不错.总之关于这个游戏,想说的一大堆.鉴于能有个空闲的时间,打 ...

  5. taglib的使用

    使用自定义的taglib可以是我们对页面数据的处理放在后台,不仅使用方便,而且影藏了处理逻辑,也更加的安全. 需要使用到servlet.jar 1.在web-inf下建立taglib.tld文件 &l ...

  6. VMware 虚拟机(linux)增加根目录磁盘空间 转自

    转自 http://wenku.baidu.com/link?url=WZDgESO0oXqYfhPYOWFalZsMglS0HKtLw7t6ICRs_sJ_sfPc85RpxsqKMwqSniis0 ...

  7. oc 多线程UI更新

    1.在子线程中是不能进行UI 更新的,而可以更新的结果只是一个幻像:因为子线程代码执行完毕了,又自动进入到了主线程,执行了子线程中的UI更新的函数栈,这中间的时间非常的短,就让大家误以为分线程可以更新 ...

  8. 对于js原型和原型链继承的简单理解(第一种,原型链继承)

    原型是js中的难点加重点,也是前端面试官最爱问的问题之一,因为面试官可以通过被面试者对原型的理解.来判断被面试者对js的熟悉程度. 原型的定义 Js所有的函数都有一个prototype属性,这个属性引 ...

  9. php 之 文件操作(0524)

    php中文件包含两种:文件,文件夹.文件夹又称目录 新建一个文件aa.txt和一个文件夹text,text文件夹下又包含bb.txt 一.判断文件类型filetype("./aa.txt&q ...

  10. dedecms文章的更新时间问题 每次更改文章时间变成最新的

    dedecms 每次更改文章,更新时间这里每次改了后再来看又变成当前最新时间的了. 解决方法: 查找后台目录的 templets/article_edit.htm 这个文件. 然后打开,查找如下代码: ...