带你进入AngularJS的大门
创始人
2025-01-27 13:01:38
0次

  

介绍

这是我写的***篇关于Angular.js的文章,但是我确信看完这篇文章将对你了解Angular.js的基本知识有很大的帮助。

首先需要指出什么是angular js,其实说白了angular js就是Javascript的一个类库,我们使用这个类库可以很容易的创建web页面。双向绑定是angular js其中的一个重要特征,这也是相对于其他的Javascript的类库来说angular js中很重要的特征。双向绑定即是当你修改任何属性的值的时候,相关联的html元素也将改变,你并不需要额外的去修改。

Angular js还为我们提供了MVVM(Model View ViewModel)的模型。MVVM的意思就是说Model是一个真实的对象,我们使用这个对象创建需要在页面显示的模型,并且调用视图模型。View(视图)即是我们需要输出的页面。

 

背景

如果你没有使用angular js或者其它的和angular js有相似功能的类库,比如knockout.js,那么当我们编写代码的时候将会写更多更复杂的代码。所以说使用angular js编写应用程序更快更高效,并且比其它的类库更容易管理。

代码使用

下面我们将通过一个简单的例子来逐渐的了解angular js。

为了更好的理解angular js的知识,我们使用asp.net作为后台的应用程序来实现简单的增删改查的操作,并且在这个例子中我们使用的是静态列表形式来展现增删改查的操作。

在数据模型中有5个属性,UserName、Address、Salary、IsMarried和Email。在视图中列出了这些属性的记录,并且在每一条数据后面都有一个删除和修改按钮。通过这些按钮我们能创建、修改和删除静态列表。

现在首先让我们了解一下以下例子中使用到的属性的含义

data-ng-app——表明这是angular 要处理的元素

data-ng-controller——指定用来处理此元素的angular 控制器

data-ng-bind——指定该元素绑定model中的哪个属性(上面列出的UserName、Address、Salary、IsMarried或者是Email)

比如UserName是Model的属性并且将该属性绑定到定义的元素

data-ng-repeat——用来指定循环的数据

使用上面的语法,我们对UserData这个angular 对象属性进行循环,取出里面的数据。limitTo:20表明最多循环20次,这是angular中的一个过滤器。当然angular.js中还可以使用 其他的过滤器,比如uppercase、lowercase和currency等。

data-ng-click——用来绑定点击事件

$index——表示循环中的索引

data-ng-model——将angular 模型应用于html dom中,这表示当修改input输入框中的值时相应的model中的属性也会改变

data-ng-disabled——通过该属性的值来禁用某个元素或者不禁用

下面让我们看一下下面的代码

var angularuserApp = angular.module("userApp", []);
angularuserApp.controller("userAppCtrl", function ($scope, $http, $interval, $window,$timeout) {})

***行代码创建了一个对象,这是由html dom中data-ng-app指定的。另一行代码创建了一个控制器,是由data-ng-controller指定的。

$http用来指定服务端的地址;$interval 和 $timeout就类似于jquery中的interval和timeout,这两个变量在这个例子中只是定义但并没有被使用到,其工作原理和jquery中的相同;$window的定义和Javascript中的window对象相同,使用这个变量可以实现你想用window对象实现的效果。

下面是所有HTML代码

  1.  
  2.      
  3.          
  4.              
  5.              
  6.              
  7.              
  8.              
  9.              
  10.              
  11.              
  12.          
  13.          
  14.              
  15.                 User Name 
  16.                 Address 
  17.                 Email 
  18.                 Salary 
  19.                 Is Married 
  20.              
  21.          
  22.          
  23.              
  24.                  
  25.                      
  26.                  
  27.                  
  28.                  
  29.                  
  30.                  
  31.                   
  32.                   
  33.              
  34.          
  35.      
  36.      
  37.      
  38.      
  39.         

     Edit User Information 

     
  40.          
  41.              
  42.                  
  43.                     User Name : 
  44.                  
  45.                  
  46.                      
  47.                  
  48.              
  49.              
  50.                  
  51.                     Address : 
  52.                  
  53.                  
  54.                      
  55.                  
  56.              
  57.              
  58.                  
  59.                     Email : 
  60.                  
  61.                  
  62.                      
  63.                  
  64.              
  65.              
  66.                  
  67.                     Salary : 
  68.                  
  69.                  
  70.                      
  71.                  
  72.              
  73.              
  74.                  
  75.                     Is Married : 
  76.                  
  77.                  
  78.                      
  79.                  
  80.              
  81.              
  82.                  
  83.                      
  84.                      
  85.                  
  86.  
  87.              
  88.          
  89.      
 
  •  
  • 下面是控制器的实现代码

    1. public class UserController : Controller 
    2.    { 
    3.        // 
    4.        // GET: /User/ 
    5.  
    6.        public ActionResult Users() 
    7.        { 
    8.            return View(); 
    9.        } 
    10.  
    11.        public JsonResult GetData() 
    12.        { 
    13.            List objList = new List(); 
    14.  
    15.            //==Create the test data for in view  ============================ 
    16.            User objuser = new User(); 
    17.            objuser.UserName = "Pragnesh Khalas"; 
    18.            objuser.Address = "B-25 Swaminarayan Park Naroda Ahmedabad"; 
    19.            objuser.Email = "pragnesh@gmail.com"; 
    20.            objuser.Salary = 9000; 
    21.            objuser.IsMarried = true; 
    22.            objList.Add(objuser); 
    23.  
    24.            objuser = new User(); 
    25.            objuser.UserName = "Rahul Patel"; 
    26.            objuser.Address = "A-40 Navkar Soci. Ahmedabad"; 
    27.            objuser.Email = "rahul@gmail.com"; 
    28.            objuser.Salary = 8000; 
    29.            objuser.IsMarried = true; 
    30.            objList.Add(objuser); 
    31.  
    32.            objuser = new User(); 
    33.            objuser.UserName = "Bhavin Patel"; 
    34.            objuser.Address = "D-10 Bharat Soci. Ahmedabad"; 
    35.            objuser.Email = "bhavin@gmail.com"; 
    36.            objuser.Salary = 6000; 
    37.            objuser.IsMarried = true; 
    38.            objList.Add(objuser); 
    39.  
    40.            return Json(objList, JsonRequestBehavior.AllowGet); 
    41.        } 
    42.  
    43.    } 

    下面是模型代码

    1. public class User 
    2. { 
    3.     [Required] 
    4.     public string UserName { get; set; } 
    5.  
    6.     [Required] 
    7.     public string Address { get; set; } 
    8.  
    9.     [EmailAddress] 
    10.     public string Email { get; set; } 
    11.  
    12.     public double? Salary { get; set; } 
    13.     public bool? IsMarried { get; set; } 
    14. } 

    以上就是本文的整体内容,希望对你有所帮助。

     

     

     

    相关内容

    热门资讯

    PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
    网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
    各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
    粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
    如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
    什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
    只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
    如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...
    全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
    如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...