angularjs - 为什么在 AngularJS 中有一个依赖注入,它使用关键字 value 传递 value 而不是使用 var
问题描述
我知道 AngularJS 有一些依赖注入技术。所以如果代码是 and mainApp.value("defaultInput", 5); 将数据传递给控制器。
//define a module
var mainApp = angular.module("mainApp", []);
//create a value object as "defaultInput" and pass it a data.
mainApp.value("defaultInput", 5);
...
//inject the value in the controller using its name "defaultInput"
mainApp.controller('CalcController', function($scope, CalcService, defaultInput) {
$scope.number = defaultInput;
$scope.result = CalcService.square($scope.number);
$scope.square = function() {
$scope.result = CalcService.square($scope.number);
}
});
为什么不在模型定义之前声明 var defaultInput = 5 呢?为什么要在 AngularJS 中创建具有价值的新语法糖?当您已经有选择时,为什么要创建全新的东西?为什么要把事情复杂化?
解决方案
是的,你可以这样做,不同的是,
如果使用 var,则上下文仅对特定控制器可用。如果要在另一个控制器中声明,则需要使用另一个 var 并分配值。
当你使用 .value 时,它表现为一个全局常量,所以当你需要使用该值时,你可以注入该值并跨控制器使用。
推荐阅读
- javascript - 从 PieCharts (Amchart) 生成 PDF 时图像被切碎
- python - 无法在 DockerFile 中复制 python 脚本依赖项
- angular - 我的服务以 JSON 格式返回匿名类型数据,如何在 Angular 9 应用程序中将其用作字符串 []
- c# - 由于 C# 中的其他进程,系统无法访问 zip 文件
- javascript - 为什么这个 for 循环不记录总和?
- vb.net - StreamString(pipeClient) 抛出错误类型未定义
- python - 如何组合具有一组公共列值的多个数据框值?
- reactjs - 如何将带有 :class 的 Vue div 标签中的代码转换为 React 代码?
- r - 如何在 row_spec kable() 中动态指定最后一行的编号?
- c++ - 递归函数调用在幕后工作