首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Angular.js对象中的函数参数名称如何连接到其他对象?

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

Stack Overflow用户
提问于 2013-06-06 05:06:27
回答 1查看 4.6K关注 0票数 18

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

代码语言:javascript
复制
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对象将被传递给控制器,这样构造代码不会改变代码的行为:

代码语言:javascript
复制
myapp.controller('mainController', function(Service, $scope) {
  $scope.greeting= Service.example;
});

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

EN

回答 1

Stack Overflow用户

发布于 2013-06-06 05:17:57

这是通过相当巧妙的方法annotate (source)实现的,该方法对函数签名源进行正则表达式扫描(使用function.toString()),并迭代地将每个函数参数推入函数$inject数组。

手动指定$inject数组时也会得到相同的结果,如下所示:

代码语言:javascript
复制
var MyController = function($scope, myService) {
  // ...
}
// Define function dependencies
MyController.$inject = ['$scope', 'myCustomService'];
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16949889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档