AngularJS基本概念

版本:

AngularJs 1.x:https://angularjs.org/

AngularJs 2+:https://angular.io/ 或 https://angular.cn/

实现语言:

Angular 1.x:使用ES(avaScript)编写,可直接在浏览器中运行。

Angular 2+:基于TypeScript,需要经过编译后才能在浏览器中运行【需要引入很多第三方依赖】,因此需要使用构建工具。

适用场景:

Angular 1.x:在设计之初主要是针对PC端的,但有衍生框架支持如 ionic。

Angular 2+:目标是原生移动,支持I0S和Andriod

技术细节:

Angular 1.x 中的控制器在 Angular 2+ 中不再使用,也可以说控制器在 Angular 2中被 Component 组件所替代

1、模块与控制器

1.1 模块

AngularJS程序通过模块(module)来组织、实例化、启动应用程序,其作用为:

  • 存储一组Angularjs功能组件(如类、函数、变量等)
  • 目的隐藏每个模块的实现细节,从而降低开发难度
  • 可以与其他模块产生互相依赖的关系;

1)声明模块:

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

参数1(name):定义模块的名称

参数2( [ ] ):“[ ]”代表一个数组,用来存放模块所依赖的其他模块的名称,如果数组为空,则表示模块没有依赖

2)绑定模块:ng-app

<div ng-app="moduleName"></div>

ng-app指令作用:

  1. 让AngularJS框架在指定的标签上启动,并载入这个模块
  2. 载入该模块后,在标签内部就可以使用该模块上的各种AngularJS功能组件,如控制器

1.2 控制器 

控制器的最大作用就是把作用域($scope)和模板上的HTML标签绑定到一起,然后在这个标签中的Angulans表达式就可以依附于该作用域执行。

一个模块可以有多个控制器。

1)控制器创建:

var app= angular.module('myApp',[]);
//$scope用到了依赖注入
app.controller('ControllerName',function($scope){
    //TOD0:为$scope准备各种数据
});

参数1(ControllerName):控制器名称
参数2:回调函数 function($scope){}

  • scope(作用域)是应用在 HTML(视图)和JavaScript(控制器)之间的纽带
  • scope 是一个JavaScript对象,有可用的方法和属性
  • scope 可应用在视图和控制器上

2)控制器绑定:ng-controller

 <div ng-controller='mycontroller'></div>

2、AngularjS作用域

一个 module 可以有多个 controller,每个 controller 中定义的数据(变量、函数...)应当有特定的作用范围

AngularJS是一个MVC(Model View Controller)框架,使用作用域(scope)来管理控制器(controller)和视图(view)之间的数据交互。在AngularS中,每个控制器都有一个作用域(scope),它是一个纯JavaScript对象,用于在控制器和视图之间传递数据。

作用域($scope),可以理解释为“数据仓库”,是一个JavaScript对象,包含属性和函数

作用域中定义的属性和方法,可以在【视图】和【控制器】 中使用

1)作用域中定义属性和函数:

app.controller('ControllerName',function($scope){
    // 定义属性name
    $scope.name = "lucy";
    // 定义函数say()
    $scope.say=function(){
        $scope.welcome ='welcome:'+ $scope.name +'!';
    };
});

2)根作用域($rootscope):

  • AngularJS中,所有应用都有一个根作用域($rootscope)
  • $rootScope用个各个控制器这间共享数据
  • $rootScope的作用范围,ng-app所指定的范围

创建格式:

<script>
var app=angular.module('myApp',[]);
app.controller('mycontroller',function($scope,$rootscope){
    // todo
});
</script>

3)作用域间的嵌套
AngularJS巧妙的使用了JavaScript原型链,实现了作用域的嵌套关系;
使用规则:

  • 优先使用当前作用域
  • 下级可以使用上级作用域
  • 上级不能作用下级作用域

3、AngularJS表达式

1)插值表达式语法格式:

{{ expression }}

2)过滤器

使用格式:

{{value | fiterl | filter2 ...}}

3)自定义过滤器

语法:

app.filter('过滤器名',function(){
    //在返回的这个函数中,还实现具体功能
    return function(待过滤数据,参数....){
        ....
        return 已过滤数据
    }; 
});

举例:

<script>
    var myApp=angular.module('myApp',[]);
    myApp.filter('scoreFilter',function(){
    return function(score){
        if(score >= 90) return'优秀'
        if(score >= 80) return'良好'
        if(score >= 70) return'中等'
        if(score >= 60) return'及格'
        return'不及格';
    }
});
</script>
  • 14
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏大橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值