Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
控制器中的Angularjs$范围_Angularjs_Angularjs Scope - Fatal编程技术网

控制器中的Angularjs$范围

控制器中的Angularjs$范围,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我要说的是,我在Angularjs是一个非常新手 在编写控制器时,我看到我可以使用 controller('MyController', ['$scope', function($scope) {}]) 或 两者的区别是什么 这主要用于缩小。当你缩小js controller('MyController',函数($scope){}) 将转换为 controller('MyController', function(a) {}) function (a){ a= 123; } 它会给出

我要说的是,我在Angularjs是一个非常新手

在编写控制器时,我看到我可以使用

controller('MyController', ['$scope', function($scope) {}])


两者的区别是什么

这主要用于缩小。当你缩小js

controller('MyController',函数($scope){})

将转换为

controller('MyController', function(a) {}) 
function (a){
  a= 123;
}
它会给出一个错误,因为a是未定义的。当您将依赖项提供为

controller('MyController', ['$scope', function($scope) {}])

它将映射到$scope,工作正常。

这主要用于缩小。当你缩小js

controller('MyController',函数($scope){})

将转换为

controller('MyController', function(a) {}) 
function (a){
  a= 123;
}
它会给出一个错误,因为a是未定义的。当您将依赖项提供为

controller('MyController', ['$scope', function($scope) {}])
它将映射到$scope,并且工作正常。

两者都是相同的

当javascript代码缩小时,函数中的所有局部变量都将更改为较小的变量以减小大小。比如说

function (largevariablename){
  largevariablename = 123;

}
将转换为

controller('MyController', function(a) {}) 
function (a){
  a= 123;
}
但在角度的情况下,如果$scope缩小为s。然后依赖项注入搜索s失败。因此,angular injector将注入它在数组中找到的字符串值,并注入它,而不是以下面的方式定义它的局部变量

controller('MyController', ['$scope', function($scope) {}])
因此,如果您的代码不打算缩小,您可以使用简单版本

控制器('MyController',函数($scope){})

两者都是相同的

当javascript代码缩小时,函数中的所有局部变量都将更改为较小的变量以减小大小。比如说

function (largevariablename){
  largevariablename = 123;

}
将转换为

controller('MyController', function(a) {}) 
function (a){
  a= 123;
}
但在角度的情况下,如果$scope缩小为s。然后依赖项注入搜索s失败。因此,angular injector将注入它在数组中找到的字符串值,并注入它,而不是以下面的方式定义它的局部变量

controller('MyController', ['$scope', function($scope) {}])
因此,如果您的代码不打算缩小,您可以使用简单版本


控制器('MyController',function($scope){})

事实上,您不应该直接使用回调(匿名函数)来定义控制器

您应该使用单独的函数和$inject模块来手动识别依赖项

controller('MyController', MyController);

MyController.$inject = ['$scope'];

function MyController($scope){

};
为什么使用命名函数

这将生成更可读的代码,更易于调试,并减少 嵌套回调代码的数量

为什么要使用$inject

此技术反映了ng annotate使用的技术,我 建议自动创建小型化保险柜 依赖关系。如果ng annotate检测到已进行注入, 它不会复制它

此外,这还可以保护您的依赖关系不受攻击 参数可能损坏时的缩小问题


这是从众所周知的

中提取出来的。事实上,您不应该直接使用回调(匿名函数)来定义控制器

您应该使用单独的函数和$inject模块来手动识别依赖项

controller('MyController', MyController);

MyController.$inject = ['$scope'];

function MyController($scope){

};
为什么使用命名函数

这将生成更可读的代码,更易于调试,并减少 嵌套回调代码的数量

为什么要使用$inject

此技术反映了ng annotate使用的技术,我 建议自动创建小型化保险柜 依赖关系。如果ng annotate检测到已进行注入, 它不会复制它

此外,这还可以保护您的依赖关系不受攻击 参数可能损坏时的缩小问题


这是从众所周知的

中提取的,两者的目的相同。如果混淆了代码,后者可能会失败。两者的用途相同。如果混淆了代码,后者可能会失败。