gpt4 book ai didi

angularjs - Angular.js 对象中的函数参数名称如何连接到其他对象?

转载 作者:行者123 更新时间:2023-12-02 19:12:00 27 4
gpt4 key购买 nike

假设我在 Angular.js 中创建了一个带有服务和 Controller 的模块,我可以像这样访问 Controller 内部的服务:

var myapp = angular.module('my-app', []);

myapp.factory('Service', function() {
var Service = {};
Service.example = 'hello';
//etc..
return Service;
});

myapp.controller('mainController', function($scope, Service) {
$scope.greeting= Service.example;
});

在此示例中,Service 对象将被传递到 Controller ,并且像这样构造代码不会改变代码的行为:

myapp.controller('mainController', function(Service, $scope) {
$scope.greeting= Service.example;
});

那么,Angular.js 如何“知道”函数参数的含义?

最佳答案

Angular 只是解析函数的 toString() 表示形式以获取依赖项的名称。来自 the docs :

In JavaScript calling toString() on a function returns the function definition. The definition can then be parsed and the function arguments can be extracted.

但是,请注意,如果您的代码被缩小,这种方法将会失败。因此,Angular 支持另一种(我建议始终使用它)语法,即使用数组:

myapp.controller('mainController', ["$scope", "Service", function($scope, Service) {
$scope.greeting= Service.example;
}]);

关于angularjs - Angular.js 对象中的函数参数名称如何连接到其他对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16949889/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com