angular的那些事

  • angular.js是什么

AngularJS 是一个 JavaScript 框架。它可通过 <script> 标签添加到 HTML 页面。

AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML。

AngularJS主要用于构建单页面Web应用。它通过增加开发人员和常见Web应用开发任务之间的抽象级别,使构建交互式的现代Web应用变得更加简单。

AngularJS使开发Web应用变得非常简单,同时也降低了构建复杂应用的难度。它提供了开发者在现代Web应用中经常要用到的一系列高级功能,例如:

1.解耦应用逻辑、数据模型和视图;

2.Ajax服务;

3.依赖注入;

4.浏览历史(使书签和前进、后退按钮能够像在普通Web应用中一样工作);

5.测试等。

AngularJS有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入

  • $scope是什么对象,干什么用的?

  1. $scope是一个作用域,也可以理解为一个对象。
  2. $scope提供了一些工具和方法,比如$watch()和$apply()等等。
  3. $scope也是一个执行环境(作用域)。
  4. 子$scope可以继承父$scope的属性和方法。
  5. 每一个Angular应用只有一个跟$scope($rootscope,位于ng-app中)。
  • 数据绑定

  1. 插值表达式{{}} 展示数据
  2. ng-bind 展示数据 (和上者功能基本一样)
  3. ng-modle 双向绑定数据
  • 关于angularjs的特点

1.数据的双向绑定:这可能是其最激动人心的特性吧,view层的数据和model层的数据是双向绑定的,其中之一发生更改,另一方会随之变化,这不用你写任何代码!(想想jQuery方式下怎么做吧)

2.代码模块化,每个模块的代码独立拥有自己的作用域,model,controller等。

3.强大的directive可以将很多功能封装成HTML的tag,属性或者注释等,这大大美化了HTML的结构,增强了可阅读性;

4.依赖注入,将这种后端语言的设计模式赋予前端代码,这意味着前端的代码可以提高重用性和灵活性,未来的模式可能将大量操作放在客户端,服务端只提供数据来源和其他客户端无法完成的操作;

5.测试驱动开发,angularjs一开始就以此为目标,使用angular开发的应用可以很容易地进行单元测试和端对端测试,这解决了传统的js代码难以测试和维护的缺陷