angularJS学习笔记

最近公司项目需求中包含前端的部分,而我又是一个JAVA开发者,因此只能学一学所谓的angularJS。(学习框架关键在于学习思想)javascript

将本身的学习总结写在这里,但愿对广大的开发者有做用。html

一、angularJS其实严格来说,属于angular 1.x版本。属于angular的老版本前端框架。而2.x以上一般被称为angular,两者没有必然的父子集关系。前端

2.x版本采用TypeScript编写。而1.x版本采用javascript编写。java

 

二、前端框架和函数库(好比:jquery有)有什么区别呢?jquery

前端框架:定义了一种全局性的,结构型的解决方案。(使用起来结构紧凑,标准化)程序员

函数库:只是提供了一些工具,方便程序员使用而已。(结构松散,灵活)前端框架

 

三、angularJS的使用场景:Simple Page Application。单页面应用。(好比,XXX后台管理系统等)闭包

 

四、如何使用:app

(1)页面中要引入angular.js。框架

(2)在html中使用ng-app指令标记angular控制的最大范围。

(3)使用ng-bind指令或者{{}}表达式将模型中数据绑定到页面中。

(4)使用ng-controller指令来划定子范围。

(5)编写本身的js文件。(注册模块,注册service,factory,value,provider,controller)

 

五、我相信看完上面的(1)~(5)的使用过程,对于初学者来讲,你已经晕了,我会一项一项的来解读。

(1)引入js,这个不须要解释。

(2)在html中使用ng-app指令标记angular控制的最大范围:

首先要理解,指令是angular对html的扩展,通常会以元素的属性存在,angular会自动去读取html,而后解析出这些指令。

因此ng-app指令是用来表示一个angular应用的最大做用范围,若是你的操做不在这个范围内,angularJS也没法检测到。

(3)使用ng-bind,ng-model指令或者{{}}表达式将模型中数据绑定到页面中:

理解这一点,关键在于理解模型的概念。模型($scope对象),是一个js对象,有angularJS建立,该对象的属性和视图(html)中

使用ng-bind或{{}}表示的地方进行双向数据绑定,其中一方改变,则另外一方跟着改变。

(4)使用ng-controller指令来划定子范围:

例如:

// 如下代码其实只是向angular注册了模块和控制器

var app = angular.module("myapp",[]);

app.controller("myCtrl1",["$scope",function($scope){

  $scope.name = "zhaoyang";

}]);

// 而这个注册的控制器匿名函数,将会被angular来进行new操做,产生一个控制器对象。

其实$scope就是模型,该对象是angular本身建立传入到函数中的,因此也叫依赖注入。

(5)编写本身的js文件。(注册模块,注册service,factory,value,provider,controller):

value注册就是提供原始值或者原始对象的。

app.value("myValue",1000);

app.controller("myCtrl1",["$scope","myValue",function($scope,myValue){

  $scope.name = "zhaoyang";

  console.log(myValue);  //  打印出1000

}]);

factory注册就是提供函数的返回值。

app.factory("myFactory",function(){

  // 该函数将会被angular调用  

  return {

    .....

  };

  // 这里只是作了个演示,让其返回一个对象。

});

service注册就是提供函数做为构造函数的返回对象。(也就是说其注册的函数会被angular进行new操做产生一个对象)

app.service("myService",function(){

  var obj = {};   // 造成返回对象中函数的闭包

  .....

  this.value = "1000";

  .... 

});

 

provider注册(比较特殊)

app.provider("myProvider",function(){

  this.$get = function(){

    return {}; // 相似于 factory的返回状况

  }

});

相关文章
相关标签/搜索