gpt4 book ai didi

javascript - 为什么我们在数组和函数中注入(inject)参数

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:01:31 24 4
gpt4 key购买 nike

我是 Angular 开发的初学者。我不知道为什么我们在 Controller 内部注入(inject)两次参数,例如:

app.controller('mycontroller', ['$scope', 'myFactory', 'Myothers', function ($scope, myFactory, Myothers) {}])

看看

app.controller('mycontroller', function ($scope, myFactory, Myothers) {})

您能解释一下我们为什么这样做吗?

最佳答案

原因是为了保护代码免受 javascript 缩小。

$inject 确保变量名以字符串的形式保存。

理想情况下,您的应用代码应如下所示:

 var app = angular.module('YourApp', []);
var appCtrl = app.controller('AppCtrl', AppCtrl);

appCtrl.$inject = ['dep1', 'dep2']; //add all the dependencies

function AppCtrl (dep1,dep2){ //add the name of the dependencies here too
//your controller logic
}

在缩小过程中,javascript 将变量名替换为自定义名称,因此 dep1 可能会被替换为 d,从而导致错误。

但是 $inject 会让 Angular 知道依赖项的实际名称是 dep1 因为它是以 string 值的形式存储的这是保护免受缩小。

因此我们使用$inject

关于javascript - 为什么我们在数组和函数中注入(inject)参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41845720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com