简化angular1依赖注入

本文探讨了Angular中控制器注入的不同方法及其优缺点,包括开发过程中常见的直接注入方式和官方推荐的标准注入方式。此外,还介绍了几种工具(如ng-annotate-loader、ng-annotate和gulp-ng-annotate)来简化和优化注入过程,确保代码在压缩混淆后仍能正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相对于主要写angular来说,所有的控制器就要添加注入需要用到的方法和模块。

先看开发过程的写法

    app.controller('appCtrl',function($scope,$rootScope,$q,$window){
    //$scope $rootScope $q $window
    })
  • 开发的时候美滋滋,测试也没有问题,但是如果压缩混淆上线,所有的变量的都会被改成单个字符,直接导致代码不能用

再看官方推荐写法

    app.controller('appCtrl',['$scope','$rootScope','$q','$window',function($scope,$rootScope,$q,$window){
    //$scope $rootScope $q $window
    }])
  • 标准的行业注入方式,压缩完以后正常使用,肯定是妥妥的,但是随着项目的越来越大,后期维护的成本大大的增加了(行业注入要求变量一一对应),看起来也很不美观

下面推荐几种解决方法

  1. ng-annotate-loader(适用webpack)

    安装方法

    npm install –save-dev ng-annotate-loader

    使用方法(webpack.config.js)

        module: {
          loaders: [
            {
              test: /src.*\.js$/,
              use: [{ loader: 'ng-annotate-loader' }],
            }
          ]
        }
  2. ng-annotate(全局安装)

    安装方法

    npm install -g ng-annotate
    mac下需要sudo权限

    使用方法

        angular.module("MyMod").controller("MyCtrl", ["$scope", "$timeout", function($scope, $timeout) {
                "ngInject";
             ...  
        }]);
  3. gulp-ng-annotate(适用gulp)

    安装方法

    npm install –save-dev gulp-ng-annotate

    使用方法(gulp.config)

        var gulp = require('gulp');
        var ngAnnotate = require('gulp-ng-annotate');
        gulp.task('default', function () {
            return gulp.src('src/app.js')
                .pipe(ngAnnotate())
                .pipe(gulp.dest('dist'));
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值