AngularJS依赖项注入-混乱的语法
我有以下代码:AngularJS依赖项注入-混乱的语法,angularjs,Angularjs,我有以下代码: <!doctype html> <html> <body> <div ng-controller="MyController"> Hello {{greetMe}}! </div> <script src="http://code.angularjs.org/snapshot/angular.js"></script> <script> angular
<!doctype html>
<html>
<body>
<div ng-controller="MyController">
Hello {{greetMe}}!
</div>
<script src="http://code.angularjs.org/snapshot/angular.js"></script>
<script>
angular.module('myApp', [])
.controller('MyController', ['$scope', function ($scope) {
$scope.greetMe = 'World';
}]);
angular.element(function() {
angular.bootstrap(document, ['myApp']);
});
</script>
</body>
</html>
上述难看的语法是什么意思?“MyController”的角色是什么?数组参数是什么意思?$scope是什么意思?谁在调用“函数($scope)”
它是如何工作的?
引导(文档,['myApp'])
上面的参数['myApp']是何时注入的,如何注入
该网站没有解释有关语法的任何内容。只是假设读者知道这一切
请提供帮助。Angular的依赖项注入将函数“字符串化”,然后从字符串中提取参数名称,并使用该名称查找依赖项服务 然而,当您缩小代码时,这些参数是因为“g”、“e”等。由于Angular现在不知道您实际需要什么服务,它们提供了两种不同的方法来显式描述您的依赖关系 第一种方法是将函数/类作为数组中的最后一个参数提供,数组中位于它前面的元素是参数的原始名称 另一种方法是传递原始函数/类,但将“static”$inject属性分配给函数本身。该属性被赋予表示原始参数名称的字符串数组的值 最后,提供给angular.controller/service/factory/etc的第一个参数是您将应用于正在注册的服务的名称。其他服务将使用该字符串声明它们对控制器/服务的依赖关系
在您的示例中,“myApp”是一个模块。模块不是作为依赖项注入的,而是打包一组服务(控制器、指令)的一种方式。如果不先通过将模块名称添加到作为第二个参数传递给angular.module的数组中,声明对该模块的依赖关系,则无法从其他模块注入服务。angular.bootstrap允许模块(及其依赖项)与dom节点一起工作。可能会在下面解释,以便您清楚地理解 angular.module('myApp',[]) 此行为模块(在本例中为myApp)创建变量,我们将在HTML页面中使用该变量从指定的元素引导应用程序 通过手动引导或使用下面的代码行 angular.bootstrap(文档,['myApp'])强> 或者通过添加到任何元素中,我们要使用 $scope是应用程序对象,可用于包含模型数据的视图和控制器 ng controller指令将允许使用指定的控制器(在这种情况下,ng controller=“MyController”) 一个模块可以有多个控制器,每个控制器都有自己关联的$scope对象和构造函数,函数模型属性和函数在关联的作用域内定义 角度依赖注入功能将有助于使用单独创建的组件,从而使这些组件可重用、可维护和可测试 下面关于依赖注入的文章将提供更多的见解
希望这对您有所帮助我想您可能已经开始“从书的中间开始阅读”。您链接的页面是关于手动引导的指南。对于已经熟悉Angular的人来说,这是一个高级主题。我建议你从一个实际的教程开始学习,这个教程会带你逐步了解词义和语法。
angular.module('myApp', [])
.controller('MyController', ['$scope', function ($scope) {
$scope.greetMe = 'World';
}]);