angular最新版本(angular框架介绍)

admin 128 0

大家好,angular最新版本相信很多的网友都不是很明白,包括angular框架介绍也是一样,不过没有关系,接下来就来为大家分享关于angular最新版本和angular框架介绍的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

一、如何查看angularjs版本

angular和angular-route版本一定要对应才能正常用吗

之前做了书本上的一个例子:angular版本用的1.2.16,angular-route我pull了1.5.8最新版本运行程序控制台报错:

ModuleError

我是用bower来管理依赖文件的,哪这个工具有没有命令可以查看依赖关系呢?

我是用bower来管理依赖文件的,哪这个工具有没有命令可以查看依赖关系呢?

<htmllang="en"ng-app="a5_6">

<title>Title</title>

<scripttype="text/javascript"src="../bower_components/angular/angular.min.js"></script>

<scripttype="text/javascript"src="../bower_components/angular-route/angular-route.min.js"></script>

<h1>View组件中的模版切换</h1>

<ahref="#/">首页</a>|

<ahref="#/book1">图书</a>|

<ahref="#/game">游戏</a>

<divng-view></div>

<scripttype="text/javascript">

vara5_6=angular.module('a5_6',['ngRoute']);

a5_6.controller('a5_6_1',['$scope',function($scope){

$scope.title='这是首页';

a5_6.controller('a5_6_2',['$scope',function($scope){

$scope.title='这是图书页';

a5_6.controller('a5_6_3',['$scope',function($scope){

$scope.title='这是游戏页';

a5_6.config(['$routeProvider',function($routeProvider){

$routeProvider.when('/',{

template:"<divclass='show'>{{title}}</div>"

template:"<divclass='show'>{{title}}</div>"

template:"<divclass='show'>{{title}}</div>"

二、使用angular-animate应该使用angular哪个版本

首先,Angular本身不提供动画机制,需要在项目中加入Angular插件模块ngAnimate才能完成Angular的动画机制,Angular也不提供具体的动画样式,所以说,它的自由度和可定制性挺大的。

那么,刚开始需要在项目的入口html文件中引入Angular框架(angular.js),然后引入angular.animate.js。

在项目的js入口文件app.js中,新建项目模块,并且添加所依赖的模块ng-Animate(有其他需要的模块的话也可以引入,顺序没关系)

var demoApp= angular.module('demoApp', ['ngAnimate','ui.router']);

这里中间插入一句,建议Angular中的依赖注入用如下模式,在ads、bds或者其他的前端自动化工具打包压缩后不会产生问题,因为仅仅通过

给function传参的形式注入依赖,Angular是会对注入的变量名有严格的要求(如$scope变量名在控制器中注入时变量名只能写$scope):

//控制器.js、指令.js、过滤器.js的依赖注入建议都用这种方式写

//这是ui-route的配置,在app.js

demoApp.config(['$stateProvider',

'$urlRouterProvider',function($stateProvider,$urlRouterProvider){

引入了ngAnimate之后,Angular的动画机制就能生效了。

Angular文档中写到如下指令和支持的动画

ngRepeat enter, leave and move

ngShow& ngHide add and remove(the ng-hide class value)

form add and remove(dirty, pristine, valid, invalid& all other

ngModel add and remove(dirty, pristine, valid, invalid& all other

本文拿ng-repeat这个指令来做个介绍,其他的一些指令使用方式几乎相同,可类推。

ng-repeat主要是对一个list的展示,这些元素是是被创建出来加入到DOM结构中去的,那么,它的动画过程为:

创建元素->.ng-enter->.ng-enter-active->完成,呈默认状态

默认状态->.ng-leave->.ng-leave-active->销毁元素

所以可以通过设置.ng-enter(.ng-leave)和.ng-enter-active(.ng-leave-active)

的样式,加上css3的动画来显示出动画,如:

-webkit-transition: all linear 1s;

这样的效果是对所有元素同时应用,可能实际运用中需要有一个先后的渐变出现的效果,这时候可以设置ng-enter-stagger来实现.

animate提供的动画的class也可以应用到页面切换中去。如果通过写css的方式还无法满足需求,当然,还可以通过JS的方式来控制动画,下面的代码你可以理解为是一个模版

/* CLASS是需要应用的class名,handles是支持的操作,如下图所示*/

/*这里如果是应用在ui-view的class上,模版会叠加(坑)*/

demoApp.animation('.classname',function(){

'handles':function(element,className,donw){

三、AngularJS2.0新特性有哪些_AngularJS

AngularJS已然成为Web应用开发世界里最受欢迎的开源JavaScript框架。自成立以来,见证其成功的是惊人的经济增长以及团体的支持与采用——包括个人开发者、企业、社区。

Angular已经变成一个构建复杂单页面应用的客户端MVW框架(Model-View-Whatever)。它在应用测试和应用编写方面都扮演重要角色,同时简化了开发过程。

Angular目前的版本为1.3,该版本稳定,并被谷歌(框架维护者)用于支持众多应用(据估计,在谷歌有超过1600个应用运行于Angular1.2或1.3)。Angular 2.0正式宣布与去年10月份的尼日利亚会议上,该版本不会是一个复杂的重大更新。

在进一步讨论Angular 2.0(估计发布日期为2015年底)之前,让我们简单的思考下新版本背后的哲学。Angular 2.0开发始于解决以下问题:

移动:新的版本将专注于移动应用的开发。依据是它更容易处理桌面方面的事情,一旦挑战涉及到移动(性能、加载时间),注重这方面会使问题得到解决。

模块化:各个模块将从Angular的核心中移除,从而获得更好的性能。这意味着你可以选择你需要的零件。

现代化:Angular 2.0将把ES6和“常青”现代浏览器(自动更新到最新版本)作为目标。这意味着开发者可以专注于业务领域相关的代码。

在尼日利亚会议上并没有提及迁移到2.0版本的途径。同时也指出跳转到2.0版本将会打破原有的1.3版本应用,不会有任何的向后兼容性。自从那时开始开发者社区一直充斥着不确定性和猜测,一些开发者也开始质疑是否值得开始一个新的Angular 1.3项目。

AtScript是ES6的一个父集,被用于开发Angular 2.0。它是由Traceur编译器(连同ES6)处理来生成ES5代码并用TypeScript类型语法来生成执行时间的断言,以此来代替编译时的检查。不过AtScript并不是强制的,你仍然能够使用纯JavaScript/ES5代码代替AtScript来编写Angular应用。

依赖注入(Dependency injection)模式的基本思想是客户类Client不用自己来初始化它所依赖的成员变量IServer,使用一个独立的对象创建IServer适当的实现类并将它赋值给Client的成员变量。它对模块开发与组件隔离特别有益。Angular 2.0将会解决Angular 1.X所存在的这个方面的问题。添加丢失的的特性,如child injectors和lifetime/scope控制。

AtScript提供工具关联元数据和功能。这有助于构建提供必要信息到DI库的对象实例(检查相关元数据时调用一个函数或创建一个类的实例)。它还容易通过提供一个注解重载参数数据。

一个child injector继承了其父类的所有性能服务。根据要求,不同类型的对象可以被调用,并且自动覆盖不同的范围。

改进的DI库将以实例范围为特性,这在使用Child Injectors和自己的范围标识符时变得更加强大。

在开发应用中,模板和数据绑定将齐头并进。

这是当前Angular版本所缺失的一个特性,不过将在Angular 2.0中出现。这将让开发者可以在忙碌中添加新的指令或控制器。

在Angular 2.0中,模板编译过程将是异步的。由于代码是基于ES6模块规格,该模块加载器将通过简单的引用组件定义来加载依赖关系。

在Angular 2.0中将会出现三种指令:

组件指令——这些将通过JavaScript、HTML或一个可选的CSS样式表的封装逻辑创建可重复使用的组件。

装饰指令——这些指令将被用来装饰元素(例如添加一个工具提示,或使用ng-show/ng-hide来显示/隐藏元素)。

模板指令——这些将把HTML改变为可重复使用的模板。模板的实例化以及嵌入到DOM可以完全由指令控制。这样的例子包括ng-if和ng-repeat。

初始的Angular路由是被设计用于处理一些简单的情况。然而,随着框架的发展,越来越多的功能被添加。在Angular 2.0中路由已经是可扩展的,它将包含以下基本功能:

现在,让我们来看看那些让Angular 2.0达到新高度的路由特性:

子路由将把应用的每个组件通过为它们提供各自路由的方式转换成更小的应用,这将有助于封装整个应用的特性集。

这将帮助开发者通过一组can*回调更出色的控制导航的生命周期:

canActivate——允许/阻止导航到新的控制器;

activate——响应成功到新的控制器的导航;

canDeactivate——允许/阻止导航远离旧的控制器;

deactivate——响应成功远离旧的控制器的导航;

这些回调将允许开发者返回Boolean值或一个命令(为了更低层次上的控制)。

所有的这些逻辑都是使用流水线结构构建的,使得它非常容易将自己的步骤添加到流水线中或移除默认的东西。此外,它的异步特性将允许开发者使用服务器请求进行身份验证或为控制器加载数据,不过这还在规划中。

Angular 2.0将包含一个被称为diary.js的日志服务——一个非常有用的特性,测量你在应用中时间花费在哪里。

$scope将从Angular 2.0中移除,取而代之的是ES6类。

随着发布日期的临近,围绕Angular 2.0的兴奋和声音将会加剧。是否打破改变是一件好事?我们无法知道,不过反对者感到紧张是可以理解的,因为明显缺乏迁移的计划。Duang的一下就来了。不过其既然要来了,我们可以做的就是积极的迎接它。

OK,本文到此结束,希望对大家有所帮助。