angularjs中的问题

1.依赖注入 

原理:通过构造函数的参数名称来推断依赖服务名称的,通过toString来找到这个function对应的字符串,然后用正则匹配出其中的参数项(依赖项),再去依赖映射表中取出对应的依赖,实例化之后传入函数。

原理的代码表示过程请参考:http://www.tuicool.com/articles/ymmq2mf 

inject.register('el', animalBox);  //注册依赖名称和依赖项
inject.register('ajax', httpRequest);
render = inject.resolve(render);  //向函数添加依赖注入 injector
render();

问题:injector假设参数的名字就是依赖的名字,然后去查找依赖项,但是如果对代码进行了压缩,参数会被重命名,就无法查找到依赖项。

所以使用下面两种方式注入依赖是安全的:

数组注释法:

myApp.controller('myCtrl', ['$scope', '$http', function($scope, $http){
    ...
}]);
显式 $inject,调用$inject属性,
myApp.controller('myCtrl', myCtrl);
function myCtrl = ($scope, $http){
    ...
}
myCtrl.$inject = ['$scope', '$http'];
posted @ 2017-03-16 14:55  夏日雪  阅读(116)  评论(0编辑  收藏  举报