`

angularjs基础

 
阅读更多

1.ng-app

 

<html lang="en" ng-app>

 ng-app指令标记了AngularJS脚本的作用域,在<html>中添加ng-app属性即说明整个<html>都是AngularJS脚本作用域。开发者也可以在局部使用ng-app指令,如<div ng-app>,则AngularJS脚本仅在该<div>中运行。

 

 

2.AngularJS模板的核心功能——绑定

 

<p>Nothing here {{'yet' + '!'}}</p>

 这个绑定由双大括号{{}}和表达式'yet' + '!'组成。

 

这个绑定告诉AngularJS需要运算其中的表达式并将结果插入DOM中,接下来的步骤我们将看到,DOM可以随着表达式运算结果的改变而实时更新。

AngularJS表达式Angular expression是一种类似于JavaScript的代码片段,AngularJS表达式仅在AngularJS的作用域中运行,而不是在整个DOM中运行。

 

3.视图与模板

<html ng-app>

<head>

  ...

  <script src="lib/angular/angular.js"></script>

  <script src="js/controllers.js"></script>

</head>

<body ng-controller="PhoneListCtrl">  
   <ul>

    <li ng-repeat="phone in phones">

      {{phone.name}}

     {{phone.snippet}} 

    </li>

  </ul>

</body>

</html>

 

 ng-controller="PhoneListCtrl" 

   ng-repeat="phone in phones"是一个AngularJS迭代器。这个迭代器告诉AngularJS用第一个<li>标签作为模板为列表中的每一部手机创建一个<li>元素

 

 

js/controllers.js--->模型与控制器

'use strict';

/* Controllers */

var phonecatApp = angular.module('phonecatApp', []);

phonecatApp.controller('PhoneListCtrl', function($scope) {
  $scope.phones = [
    {'name': 'Nexus S',
     'snippet': 'Fast just got faster with Nexus S.'},
    {'name': 'Motorola XOOM™ with Wi-Fi',
     'snippet': 'The Next, Next Generation tablet.'},
    {'name': 'MOTOROLA XOOM™',
     'snippet': 'The Next, Next Generation tablet.'}
  ];
}); 

控制器函数的作用域($scope) 

AngularJS的作用域理论非常重要:一个作用域可以视作模板、模型和控制器协同工作的粘接器。AngularJS使用作用域,同时还有模板中的信息,数据模型和控制器。这些可以帮助模型和视图分离,但是他们两者确实是同步的!任何对于模型的更改都会即时反映在视图上;任何在视图上的更改都会被立刻体现在模型中

 

 

3.ng-model/filter

 

<div class="container-fluid">
  <div class="row-fluid">
    <div class="span2">
      <!--Sidebar content-->

      Search: <input ng-model="query">

    </div>
    <div class="span10">
      <!--Body content-->

      <ul class="phones">
        <li ng-repeat="phone in phones | filter:query">
          {{phone.name}}
        <p>{{phone.snippet}}</p>
        </li>
      </ul>

       </div>
  </div>
</div>
 数据绑定: 这是AngularJS的一个核心特性。当页面加载的时候,AngularJS会根据输入框的属性值名字,将其与数据模型中相同名字的变量绑定在一起,以确保两者的同步性。

 

在这段代码中,用户在输入框中输入的数据名字称作query,会立刻作为列表迭代器(phone in phones | filter:query`)其过滤器的输入。当数据模型引起迭代器输入变化的时候,迭代器可以高效得更新DOM将数据模型最新的状态反映出来

  • 使用filter过滤器:filter函数使用query的值来创建一个只包含匹配query记录的新数组。

    ngRepeat会根据filter过滤器生成的手机记录数据数组来自动更新视图。整个过程对于开发者来说都是透明的。

 

 3.Directives/Expressions

 

<!-- html -->

<ul>

    <li ng-click="hide_child = !hide_child">

        Item 1

        <ul ng-hide="hide_child">

            <li>Item child 1</li>

        </ul>

    </li>

</ul>
 ng-clickng-hide都是框架自带的Directives(指令),前者相当于给li标签提供了一个Event Handler,在该HTML元素(li)被点击的时候,会执行hide_child = !hide_child这个Expression(表达式)。我们先看一下ng-hide这个指令,它会根据赋值的表达式结果(布尔值)来控制该HTML元素是否要显示(通过CSS实现)。也就是说,如果hide_child这个变量如果是true,那么ul就会被隐藏,否则结果相反。  

 

这里hide_child其实是$scope上的一个变量,对它的值的变更,也可以用controller控制器包装一个方法来实现,只不过现在的语句比较简单,直接写在了指令的赋值里面。

通过以上简单的代码分析,我们可以看到AngularJS两个比较明显的特点:

1.通过指令和表达式对DOM的操作进行了封转,只需简单的代码便可省去额外的JavaScript代码
2.指令和表达式的应用,只直接嵌套在HTML中的,这和jQuery推从的Unobtrusive JavaScript的代码风格有些背道而驰

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    ionic项目简介以及Angularjs 基础

    ### AngularJS 基础 AngularJS是一个由Google开发和维护的开源前端框架,用于构建动态的、富交互的Web应用。它最初由Misko Hevery和Adam Abrons于2009年开发,后来成为了Google的项目。AngularJS通过将应用逻辑绑定...

    angularJs基础(1)

    **AngularJS基础(1)** AngularJS,作为一个强大的前端JavaScript框架,由Google维护,是Web开发中的重要工具,尤其在构建动态单页应用程序(SPA)时。本篇将深入探讨AngularJS的基础概念,帮助初学者快速上手。 ...

    angularjs基础教程(经典)含node.js安装

    **AngularJS基础教程** AngularJS,作为一款由Google维护的前端JavaScript框架,是构建动态Web应用的利器。它提供了一套强大的数据绑定和依赖注入机制,使得开发者可以更专注于业务逻辑,而无需过多关注DOM操作。本...

    angularjs基础视频教程

    这是angularjs的基础视频教程,里面包含网盘链接和提取码

    angularJs基础(2-6)

    本教程将深入探讨AngularJS的基础知识,包括它的核心概念、指令、服务以及数据绑定等,帮助初学者理解并掌握这个框架。 一、AngularJS核心概念 1. **双括号数据绑定**:`{{ }}` 是AngularJS中最直观的特点,它实现...

    angular-course:AngularJS 基础课程资料

    AngularJS 基础 Web 开发课程 学分 基于的最终项目 特玛丽 AngularJS 简介 AngularJS 关键概念 App的基本配置 使用表单 使用 ngRoute 路由 档案结构 示例应用 访问 REST API 的服务 生产部署准备 安装 在开发环境中...

    AngularJs:AngularJs 基础

    AngularJs 基础 HTML 非常适合声明静态文档,但是当我们尝试使用它来声明 Web 应用程序中的动态视图时,它会动摇。 AngularJS 允许您为应用程序扩展 HTML 词汇。 由此产生的环境非常具有表现力、可读性和快速开发。

    rocket-fuel:用于学习AngularJS基础的项目

    火箭燃料用于学习AngularJS基础的项目帕特里克·斯塔尔普(Patrick Stalcup) ##目标使用AngularJS构建有意义的东西要记住git(至少对于个人项目而言) 发挥创意并为游戏设计一些东西##跑步签出专案确保您已安装...

    AngularJS入门教程04:双向绑定

    AngularJS Seed工程是一个基础的AngularJS项目模板,包含了必要的文件和目录结构,用于快速启动一个新的AngularJS项目。`app`目录通常是存放应用源代码的地方,包括控制器、服务、指令等。而`test`目录则用于存放...

    LearningAngularJSBasic:AngularJS基础课程的测试仓库

    **AngularJS基础课程详解** AngularJS,作为一款强大的前端JavaScript框架,由Google维护,主要用于构建动态Web应用。这个“LearningAngularJSBasic”测试仓库旨在帮助初学者深入理解AngularJS的基本概念和技术,...

    提高前端开发效率必备AngularJS(基础)共6页.pd

    以下是关于AngularJS基础的一些关键知识点: 1. **双括号数据绑定**:AngularJS的核心特性之一就是双向数据绑定,它使得视图和模型之间保持同步。在HTML元素中使用`{{ }}`双括号,可以直接显示或更新模型的数据。 ...

    AngularJS.in.Action.2015.7.pdf

    根据提供的文件信息,我们可以提取以下知识点: 1. **AngularJS介绍与应用:**从提供的文件内容来看,《AngularJS in Action》是一本专注于...对于想要了解AngularJS基础知识的读者,此书无疑是一个很好的学习资源。

    angularjs+nodejs例子

    1. **AngularJS基础知识**:AngularJS的核心特性包括数据绑定、依赖注入、指令、过滤器和服务。数据绑定使得视图与模型之间的同步变得简单;依赖注入帮助管理对象间的依赖关系;指令扩展了HTML,使其能够表达更多的...

    AngularJS_Up_and_Running

    ### AngularJS基础 从基础开始,AngularJS涉及到使用控制器(Controllers)来在视图(View)和模型(Model)之间传递数据。控制器是JavaScript函数,它们能够控制HTML视图的行为。当了解AngularJS的基本概念后,学习...

    AngularJS_in_Depth_v5_MEAP

    ### AngularJS深入解析 V5...本书特别适合那些已经掌握了AngularJS基础知识并希望进一步提高自己的技能水平的开发者。通过本书的学习,读者将能够更加自信地处理复杂的AngularJS项目,并解决开发过程中遇到的各种挑战。

    angularjs入门已经常用的小插件

    ### AngularJS基础知识 1. **双向数据绑定**:AngularJS的核心特性之一,允许模型(model)和视图(view)之间的数据自动同步。当模型发生变化时,视图会自动更新;反之亦然。 2. **指令**(Directives):AngularJS提供...

    angularjs+boorstrap视频教程

    #### 一、AngularJS基础概览 1. **AngularJS简介**: - **定义**:AngularJS是一种开源的JavaScript框架,由Google维护,用于简化Web应用的开发过程。 - **版本**:AngularJS通常指的是1.x版本,与后来的Angular ...

    Professional AngularJS 电子书

    - **AngularJS基础语法**:介绍AngularJS的基本语法结构,包括数据绑定、指令等。 - **项目搭建**:指导如何搭建一个AngularJS项目,包括环境配置、文件结构组织等内容。 - **简单应用示例**:通过一个或多个简单的...

    angularjsdemo

    4. **angular-demo**:这个文件可能是一个包含AngularJS基础示例的目录,用于演示如何初始化一个AngularJS应用,以及如何创建控制器、服务、指令等基本元素。 5. **新建文件夹**:这通常表示开发者可能在这里存放了...

Global site tag (gtag.js) - Google Analytics