【发布时间】:2015-04-02 05:25:11
【问题描述】:
开始接触 angular.js,我看到了与回调参数相关的常见模式。一个例子是ui-router documentation:
var myApp = angular.module('myApp', ['ui.router']);
myApp.config(function($stateProvider, $urlRouterProvider) {
// Do stuff with ui-router providers
}):
但是,据我所知,myApp.config 回调的参数可能不同,但仍会按预期运行:
myApp.config(function(OtherProvider) {
// Do stuff with provider from another service
});
myApp.config 怎么知道区别?是否正在进行奇怪的魔术自省,或者是否有一些基本的 JS 概念允许这样做?例如。类似:
myApp.config = function(callback) {
var providerNames = callback.argumentNames;
var providers = this.findProviders(providerNames);
};
也许我对 python 太习惯了,只有通过一些非常可怕的 hack 才能实现这种功能。
【问题讨论】:
-
这一切在文档中都有很好的解释,检查这个:docs.angularjs.org/guide/di
-
第一个显示的表单是 JavaScript 中的“可怕的 hack”。 “非 hack”形式分别采用绑定/服务名称,而不是依赖于参数的名称。
-
这是你要找的东西吗:stackoverflow.com/questions/6921588/…
-
@dfsq 文档只是说它确实有效,而不是它是如何工作的。我的问题更多的是 javascript 如何处理参数而不是 Angular 的依赖注入。
-
哦,我明白了,这很容易解释。请稍等。
标签: javascript angularjs parameters