在构造控制器、服务等时作为函数参数传递之前列出的角度 JS 变量
Angular JS variable listed before passing as function parameters when constructing controllers,services etc
我正在学习Angular.js并试图理解在构造控制器或指令等东西时将变量传递给函数的语法。我已经看到了构造控制器时使用的以下语法。
app.controller('MainController', ['$scope', function($scope) {
$scope.somestuff = "some stuff";
}]);
当变量$scope
在函数中使用之前放置时。
我还看到了这种语法,其中 $scope
只在函数中使用,而不必将其放在函数之前并将两者放在方括号内。
app.controller('MainController', function($scope) {
$scope.somestuff = "some stuff";
});
有人可以解释一下这里的区别以及是否有首选方法吗?Codecademy使用第一种方法,而W3Schools使用后者。
语法称为依赖关系注释。有三种不同的方法可以使依赖关系注入工作。
您的第一个是内联数组注释。您将依赖项定义为字符串,并且 angular 以相同的顺序将它们注入数组的最后一个元素,即函数。
第二种语法是隐式依赖注入。Angular 试图通过函数参数名称获得正确的依赖关系。
注入依赖项的最后一个可能性是 $inject 属性。
app.controller('myCtrl', MyCtrl);
MyCtrl.$inject = ['$scope'];
function MyCtrl($scope) {
... // your ctrl code
}
$scope被显式注入函数属性。
建议使用内联数组批注或 $inject 属性,因为这两种方式都不会受到缩小代码的影响。隐式依赖关系注入应仅用于小型项目或代码段。
你遇到了依赖注入。
在您的两个示例中,区别仅在于注释。第一个示例使用内联数组注释(并且是注释应用程序组件的首选方法),第二个示例使用隐式注释。您可以在我上面留下的链接中阅读有关它们的更多信息。
希望有帮助。
相关文章:
- 等待函数完成,然后将返回值分配给变量JS
- 节点中的变量.js JavaScript 不会改变
- 如何在 Node 中访问模块全局变量.js例如浏览器中的 window.variable
- 在角度中使用父范围变量.js
- 在重新声明变量 (JS) 时遇到了问题
- 在主干中使用全局变量.js .最佳实践
- 在节点中使用变量.js mysql-node 查询
- 如果变量 JS 太高,则启动/停止反转
- 变量 Js 在 PHP 代码中不起作用
- 无法使用车把正确在我的“模板”中显示变量.js
- 引导程序中的全局变量.js在 Firefox for Android 扩展中
- Webstorm 中的“未解析变量 JS”
- 变量JS的子字符串值
- 动态更新变量JS
- 不能用一个主变量访问单个变量[jS]
- 创建全局变量js
- 当不同的函数需要从数据库调用数据时,如何避免使用全局变量.(JS)
- 变量JS中的变量
- 本地存储变量js
- 为循环追加变量js