AngularJS压缩JS技巧分析

 更新时间:2016年11月08日 09:37:50   作者:前端超人  
这篇文章主要介绍了AngularJS压缩JS的操作技巧,分析了AngularJS进行压缩(minify)之后出现的问题与相应的解决方法,需要的朋友可以参考下

本文实例讲述了AngularJS压缩JS的操作技巧。分享给大家供大家参考,具体如下:

大多数web项目在发布时候都会对js代码进行压缩,目的是为了减少js文件的大小,节省一点流量。

它的原理很简单,就是对参数及部分变量名和函数进行重命名。

但是这种工作方式在AngularJS的应用中会有例外。

由于AngularJS的依赖注入是根据参数名进行注入的,显然,对参数进行重命名会破坏这个机制。

如果不进行特殊处理,进行压缩(minify)之后,在执行时将会出现这样的错误

Unknow provider: aProvider<-a

对于这种错误的官方解释是:找不到依赖的服务

也就是说这种依赖注入会出现错误。

好在AngularJS内置了一种标准机制来处理这个问题.

最简单也最常见的方式就是用数组代替函数。如:

.controller('RegisterCtrl', ['$scope', '$interval', '$timeout', function ($scope, $interval, $timeout) {
  //do something
}]);

数组的最后一个元素始终是一个函数,而前面几个参数都是字符串,和这个函数中的参数一一对应。

另一种形式便是所谓的Annotation方式。

var objCtrl = function($scope, $timeout, $interval){
  // do something
}
//给objCtrl函数增加一个$inject属性,它是一个数组,定义了需要被注入的对象
objCtrl.$inject = ['$scope', '$interval', '$timeout'];

这里的依赖注入形式不仅限于Controller,一切需要DI(依赖注入的directive、factory、services等)都可以采用这两种方式。

希望本文所述对大家AngularJS程序设计有所帮助。

相关文章

  • AngularJS  自定义指令详解及实例代码

    AngularJS 自定义指令详解及实例代码

    这篇文章主要介绍了AngularJS 自定义指令,这里整理了详细的资料及简单实例代码,有需要的小伙伴可以参考下
    2016-09-09
  • angular+ionic返回上一页并刷新页面

    angular+ionic返回上一页并刷新页面

    这篇文章主要介绍了angular+ionic返回上一页并刷新页面,需要的朋友可以参考下
    2017-08-08
  • AngularJS递归指令实现Tree View效果示例

    AngularJS递归指令实现Tree View效果示例

    这篇文章主要介绍了AngularJS递归指令实现Tree View效果,结合实例形式分析了AngularJS基于递归指令实现树形结构层次数据的相关操作步骤与注意事项,需要的朋友可以参考下
    2016-11-11
  • Angular异步变同步处理方法

    Angular异步变同步处理方法

    今天小编就为大家分享一篇Angular异步变同步处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 学习Angular中作用域需要注意的坑

    学习Angular中作用域需要注意的坑

    这篇文章记录了当时刚学习angular的时候踩的关于作用域的坑,希望给以后学习Angular作用域的朋友一个提醒,有需要的可以参考学习。
    2016-08-08
  • Angular 路由route实例代码

    Angular 路由route实例代码

    下面小编就为大家带来一篇Angular 路由route实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • AngularJs  Understanding Angular Templates

    AngularJs Understanding Angular Templates

    本文主要介绍AngularJs Understanding Angular Templates的资料,这里整理了详细的资料及简单示例代码,有兴趣的小伙伴的参考下
    2016-09-09
  • Angular的$http的ajax的请求操作(推荐)

    Angular的$http的ajax的请求操作(推荐)

    这篇文章主要介绍了Angular的$http的ajax的请求操作的相关资料,需要的朋友可以参考下
    2017-01-01
  • angularJS深拷贝详解

    angularJS深拷贝详解

    本篇文章主要介绍了angularJS深拷贝,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • AngularJS路由Ui-router模块用法示例

    AngularJS路由Ui-router模块用法示例

    这篇文章主要介绍了AngularJS路由Ui-router模块用法,结合实例形式分析了Ui-router模块的功能、使用方法及相关注意事项,需要的朋友可以参考下
    2017-05-05

最新评论