angularJS的核心特性

前几天师傅让我了解一下angularJS,angularJS是一个前端框架,具体的优缺点和运用场景我现在也还没有搞清楚,暂时就先不做描述了,留到运用以后进行补充吧。

angularJS四大核心特性:MVC、Module(模块化)、指令系统、双向数据绑定。

下面就以上四大核心特性,进行一些简要介绍:

1、MVC(Module——Control——View)

我们应该都知道MVC代表:数据模型层(Module)——业务逻辑和控制逻辑(Control)——视图层(View),先看一个简单的angularJS例子:

<!Doctype html>
<html ng-app>
    <head>
        <meta charset="utf-8">
        <script>
            function HelloAngular($scope){
                $scope.greeting = {
                    text: "Hello"
                };
            }
        </script>
    </head>
    <body>
        <div ng-controller="HelloAngular">
            <p>{{greeting.text}},Angular</p>
        </div>
    </body>
    <script src="js/angular-1.3.0.js"></script>
</html>

运行结果:Hello,Angular

分析这个简单的例子,我们可以比较明显的区分出MVC的各层,div中定义的ng-controller就是一个控制器,这个控制器被定义为一个函数,而p标签的内容很明显就是显示层,函数中定义了一个greeting对象的text属性,而在显示曾中的通过{{}}获取它的值,很明显为数据模型层。这样页面显示的内容就是数据模型的值了。

2、Module(模块化)

上面的例子中我们定义了一个全局函数,但是有经验的开发者都知道我们在开发过程中应该尽量避免定义全局变量和全局函数。因此我们就需要了解angularJS的模块化特性了,我们修改上面的实例

<!Doctype html>
<html ng-app="HelloAngular">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <div ng-controller="helloAngular">
            <p>{{greeting.text}},Angular</p>
        </div>
    </body>
    <script src="js/angular-1.3.0.js"></script>
     <script>
            var myModule = angular.module("HelloAngular", []);

            myModule.controller("helloAngular", [‘$scope‘,
                function HelloAngular($scope) {
                    $scope.greeting = {
                        text: ‘Hello‘
                    };
                }
            ]);
        </script>
</html>

和上面的实例比对,下面的实例中使用angular的module方法定义了一个模块,并在定义的模块上调用了一个controller方法,很明显是定义了一个myModule模块的一个控制器,该控制器的名字为helloAngular,其具体实现则为上面实例中的HelloAngular函数,这样我们就把控制器模块化了,而不在使用全局函数作为控制器。

注意:一切都是从模块开始的,我们在使用angularJS时,一定要先想到模块,所有的东西都是建立在模块的基础上,只有定义了模块才能调用其它方法。

上面实例中的ng-app相当于java中main函数,所以每个页面中只能定义一个ng-app,他定了所在的模块。

3、指令系统

angular的指令系统是最有特色、最吸引人的一个特性。下面先看一个实例:

<!Doctype html>
<html ng-app="MyModule">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <hello></hello>
    </body>
    <script src="js/angular-1.3.0.js"></script>
    <script>
        var myModule = angular.module("MyModule", []);
        myModule.directive("hello", function() {
            return {
                restrict: ‘E‘,
                    template: ‘<div>Hi everyone!</div>‘,
                replace: true
            }
        });
    </script>
</html>

实例中的html代码中有一个hello标签,但我们知道标准的HTML代码中并没有hello标签,我们再看一下具体的js代码中,如上个实例,首先定义了一个模块myModule,然后在模块上调用了directive函数,很明显hello则是这个指令名称,而对应的方法也很明显,返回一个template,而这个templte的内容则成为了hello标签的内容了。

大家想一下,如果我们定义大量的指令,然后就可以在页面中随便调用了。

4、双向数据绑定

大部分框架实现的都是单向数据绑定,单向数据绑定的意思是将数据绑定到模板上,并且显示到界面上,这种模式的缺点是显示出来后,当数据更改时,并不能及时的更新到页面上,因此angular提出了双向数据绑定的定义。

我们来看一个实例:

<!Doctype html>
<html ng-app>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <div>
            <input ng-model="greeting.text"/>
            <p>{{greeting.text}},AngularJS</p>
        </div>
    </body>
    <script src="js/angular-1.3.0.js"></script>
</html>

界面截图:

该实例无论你在input中输入任何内容,都会实时的显示在下面的p标签中,我们可以看到该实例中我们没有写任何js代码,我们在input上绑定了一个ng-model,它的值为greeting.text,而在p标签中则获取这个值,实时显示在html中。

时间: 2024-08-03 17:04:43

angularJS的核心特性的相关文章

关于AngularJS学习整理---核心特性

接触.学习AngularJS已经三个多月了,随着学习的深入,有些东西刚开始不明白,现在开始慢慢明白起来.于是,开始整理这几个月的学习成果.要不又要忘了...  初学Angular,是看到慕课网大漠穷秋老师教程学的,以下内容是参考教程,还有自己的整理写的,如有相似之处,莫怪莫怪... 步入正题.学习Angular,首先得了解.熟知.掌握它的四大核心特性. 一.MVC模式 Model(模型):是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据. View(视图):  用户

介绍一下Spring Cloud微服务架构的核心特性

Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:Spring Cloud在微服务的架构中都做了哪些事情?Spring Cloud提供的这些功能对微服务的架构提供了怎样的便利? 传统架构发展史 单体架构 单体架构在小微企业比较常见,典型代表就是一个应用.一个数据库.一个web容器就可以跑起来,比如我们开发的开源软件云收藏,就是标准的单体架构. 在两种情况下可能会选择

关于Spring Cloud的核心特性

SOA和微服务的区别 其实服务化架构已经可以解决大部分企业的需求了,那么我们为什么要研究微服务呢?先说说它们的区别: 微服务架构强调业务系统需要彻底的组件化和服务化,一个组件就是一个产品,可以独立对外提供服务 微服务不再强调传统SOA架构里面比较重的ESB企业服务总线 微服务强调每个微服务都有自己独立的运行空间,包括数据库资源. 微服务架构本身来源于互联网的思路,因此组件对外发布的服务强调了采用HTTP Rest API的方式来进行 微服务的切分粒度会更小 总结:微服务架构是 SOA 架构思想的

ES6核心特性

摘要:聊JS离不开ES6啊! 原文:ES6核心特性 作者:ljianshu 前言 ES6 虽提供了许多新特性,但我们实际工作中用到频率较高并不多,根据二八法则,我们应该用百分之八十的精力和时间,好好专研这百分之二十核心特性,将会收到事半功倍的奇效!写文章不容易,请大家多多支持与关注!本文首发地址GitHub博客. 一.开发环境配置 这部分着重介绍:babel 编译ES6语法,如何用webpack实现模块化. 1. babel 为啥需要babel? ES6 提供了许多新特性,但并不是所有的浏览器都

乐字节-Java8核心特性实战之函数式接口

什么时候可以使用Lambda?通常Lambda表达式是用在函数式接口上使用的.从Java8开始引入了函数式接口,其说明比较简单:函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口. java8引入@FunctionalInterface 注解声明该接口是一个函数式接口. 语法 抽象方法有且仅有一个 接口使用@FunctionalInterface 注解进行标注 接口中可以存在默认方法和静态方法实现 如下形式: /** * 定义函数式

Mysql --09 Innodb核心特性——事务

目录 Innodb核心特性--事务 1.什么是事务 2.事务的通俗理解 3.事务ACID特性 4.事务流程举例 5.事务的控制语句 6.事务隐式提交情况 7.事务日志redo基本功能 8.redo数据实例恢复过程 9.事务日志undo 10.redo和undo的存储位置 11.事务中的锁 12.多版本并发控制(MVCC) 13.锁的粒度 14.事务的隔离级别 15.脏读 幻读 重复读 查询原因,和解决办法 (RR级别) Innodb核心特性--事务 1.什么是事务 主要针对DML语句(updat

AngularJS的核心对象angular上的方法全面解析(AngularJS全局API)

总结一下AngularJS的核心对象angular上的方法,也帮助自己学习一下平时工作中没怎么用到的方法,看能不能提高开发效率.我当前使用的Angularjs版本是1.5.5也是目前最新的稳定版本,不过在全局API上,版本不同也没什么区别. AngularJS 全局 API列表 element bootstrap copy extend merge equals forEach noop bind toJson fromJson identity isUndefined isDefined is

AngularJS 的常用特性(五)

13.使用路由和 $location 切换视图 对于一些单页面应用来说,有时候需要为用户展示或者隐藏一些子页面视图,可以利用 Angular 的 $route 服务来管理这种场景. 你可以利用路由服务来定义这样的一种东西:对于浏览器所指向的特定 URL,Angular 将会加载并显示一个模板,并实例化一个控制器来为模板提供内容. 在应用中可以调用 $routeProvider 服务上的函数来创建路由,把需要创建的路由当成一个配置块传给这些函数即可.伪代码如下: 1 var someModule

Angularjs的核心概念

1. 客户端模板 多页面的应用通过组装和拼接服务器上的数据来生成HTML,然后输出到浏览器.Angularjs不同于此的是,传递模板和数据到浏览器,然后在浏览器端进行组装.浏览器的角色编程了只提供模板的静态资源和模板所需要的数据. <html ng-app> <head> <script src="angular.js"></script> <script src="controllers.js"><