Angular JS - module.controller 参数
Angular JS - module.controller parameters
我是 Angular JS 的新手,他们在教程中指出创建控制器的方法是:
angular.module('app', [])
.controller('TodoController', ['$scope', function ($scope) {
$scope.todos = [
{ title: 'Learn Javascript', completed: true },
{ title: 'Learn Angular.js', completed: false },
{ title: 'Love this tutorial', completed: true },
{ title: 'Learn Javascript design patterns', completed: false },
{ title: 'Build Node.js backend', completed: false },
];
}]);
我想了解每个参数的作用:
- 'TodoController'
- 数组
- '$scope'
- 函数
我猜第一个是controller的名字,最后一个是TodoController的构造函数
但是 '$scope'
是什么?要在 HTML 上使用的变量名称,方法名称?
我可以在数组中发送更多参数吗?
我搜索了 Angular 文档,但是没有关于方法的文档非常蹩脚。搜索 class 代码都没有提供更多信息。
在数组中,参数 (String) 是(不包括最后一个,是的,这是构造函数)需要按照数组中的顺序注入的依赖项,这些将以相同的顺序传递控制器(即构造函数)的实现。
$scope
是一个对象,保持与视图的绑定,其内容在视图和控制器中都可用。每当您将它注入新控制器并且需要创建该控制器的实例时,它就会由($rootScope
然后是层次结构)的 $new
方法创建。
是的。你是对的。
第一个参数是控制器名称。第二个数组,其中数组中的最后一个元素将是控制器函数,其他元素是依赖项。
这称为内联数组注释。
您可以在不传递数组的情况下创建控制器,除非您不缩小代码(隐式注释。)
小心:如果您打算精简代码,您的服务名称将被重命名并破坏您的应用程序。
请检查创建控制器或服务的三种方式。
https://docs.angularjs.org/guide/di
第二个参数(字符串数组+函数)用于依赖注入。
angular.controller('TodoController', ['$scope', function ($scope) { ... }])
万一您的代码被缩小 angular 将知道要注入哪些依赖项,因为字符串不受缩小的影响。
所以,上面的代码压缩后会变成这样:
angular.controller("TodoController",["$scope",function(o){...}]);
并且它仍然可以被 angular 的依赖注入算法读取。
PS。数组是可选的,你可以只传递普通函数。
我是 Angular JS 的新手,他们在教程中指出创建控制器的方法是:
angular.module('app', [])
.controller('TodoController', ['$scope', function ($scope) {
$scope.todos = [
{ title: 'Learn Javascript', completed: true },
{ title: 'Learn Angular.js', completed: false },
{ title: 'Love this tutorial', completed: true },
{ title: 'Learn Javascript design patterns', completed: false },
{ title: 'Build Node.js backend', completed: false },
];
}]);
我想了解每个参数的作用:
- 'TodoController'
- 数组
- '$scope'
- 函数
我猜第一个是controller的名字,最后一个是TodoController的构造函数
但是 '$scope'
是什么?要在 HTML 上使用的变量名称,方法名称?
我可以在数组中发送更多参数吗?
我搜索了 Angular 文档,但是没有关于方法的文档非常蹩脚。搜索 class 代码都没有提供更多信息。
在数组中,参数 (String) 是(不包括最后一个,是的,这是构造函数)需要按照数组中的顺序注入的依赖项,这些将以相同的顺序传递控制器(即构造函数)的实现。
$scope
是一个对象,保持与视图的绑定,其内容在视图和控制器中都可用。每当您将它注入新控制器并且需要创建该控制器的实例时,它就会由($rootScope
然后是层次结构)的 $new
方法创建。
是的。你是对的。
第一个参数是控制器名称。第二个数组,其中数组中的最后一个元素将是控制器函数,其他元素是依赖项。 这称为内联数组注释。
您可以在不传递数组的情况下创建控制器,除非您不缩小代码(隐式注释。)
小心:如果您打算精简代码,您的服务名称将被重命名并破坏您的应用程序。
请检查创建控制器或服务的三种方式。 https://docs.angularjs.org/guide/di
第二个参数(字符串数组+函数)用于依赖注入。
angular.controller('TodoController', ['$scope', function ($scope) { ... }])
万一您的代码被缩小 angular 将知道要注入哪些依赖项,因为字符串不受缩小的影响。
所以,上面的代码压缩后会变成这样:
angular.controller("TodoController",["$scope",function(o){...}]);
并且它仍然可以被 angular 的依赖注入算法读取。
PS。数组是可选的,你可以只传递普通函数。