加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 在角度js在控制器中使用$inject?

发布时间:2020-12-17 08:58:46 所属栏目:安全 来源:网络整理
导读:我是新的angularjs,我完全困惑注入。我不知道在哪里使用它,为什么?这是唯一使用与工厂作为解释在这个链接 inject link? myController.$inject = ['$scope','notify']; 这里,notify是工厂的名称。 这是一种在代码缩小后支持依赖注入的方法(如果您选择缩
我是新的angularjs,我完全困惑注入。我不知道在哪里使用它,为什么?这是唯一使用与工厂作为解释在这个链接 inject link?
myController.$inject = ['$scope','notify'];

这里,notify是工厂的名称。

这是一种在代码缩小后支持依赖注入的方法(如果您选择缩小)。

当声明控制器时,函数接受参数:

function ($scope,notify)

当您缩小代码时,您的函数将如下所示:

function (a,b)

因为AngularJS使用函数参数名来推断DI,你的代码将会中断,因为AngularJS不知道a或b。

为了解决这个问题,他们提供了其他方法来声明控制器(或其他服务/工厂/等):

1)对于控制器,使用$ inject方法 – 在这里你传递一个字符数组映射到控制器函数的参数。所以,如果你提供

['$scope','notify']

那么您的函数的第一个参数的值将是与此控制器关联的范围对象,第二个参数将是通知服务。

2)当声明新的控制器,服务等时,可以使用数组文本语法。在这里,你做这样的事情:

angular.module('myModule').controller('MyController',['$scope','notify',function ($scope,notify) {
 ...
}]);

该数组作为控制器函数的参数将DI对象映射到函数参数。

我喜欢选项#2时声明控制器等,因为它更容易阅读/理解/交叉检查,因为它都在同一个地方。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读