我怎么知道我可以将哪些依赖项注入控制器?
How do I know what dependencies I can inject into a controller?
我正在尝试在我的控制器中使用 $routeProvider
依赖项:
.controller('mainController', function($scope, $state, $routeProvider) {
但我收到错误消息:
Error: [$injector:unpr] Unknown provider: $routeProviderProvider <- $routeProvider
我如何知道我可以将哪些依赖项注入到任何给定的控制器中?
您只能访问控制器中的服务,而不能访问提供程序,因此请在此处使用 $route
。
因此您收到错误 $routeProviderProvider 因为它正在寻找 $routeProvider
的提供者,它本身就是 $route
.[=14 的提供者=]
里面有两相angular
- 配置阶段(这里我们用
app.config
写一段代码)
- 运行 阶段(我们使用
app.run
,在 运行 循环之后所有其他指令都使用编译循环执行)
Provider 只是 service/factory 但最重要的是它可以在配置阶段访问。
例子
假设我们有以下供应商
myApp.provider('unicornLauncher', function UnicornLauncherProvider() {
var useTinfoilShielding = false;
this.useTinfoilShielding = function(value) {
useTinfoilShielding = !!value;
};
this.$get = ["apiToken", function unicornLauncherFactory(apiToken) {
return new UnicornLauncher(apiToken, useTinfoilShielding);
}];
});
虽然将其注入到配置中,但您应该始终在其前面加上前缀 Provider
,例如 unicornLauncherProvider
在控制器中使用它时,您可以将其用作 unicornLauncher
注:
Provider are always accessible inside .config
(configuration)
phase with suffix Provider
in their name, While inside controller you could > directly inject it using unicornLauncher
(direct provider name)
Services/Factory They are not visible in config phase of angular
还是一头雾水再参考this link
我正在尝试在我的控制器中使用 $routeProvider
依赖项:
.controller('mainController', function($scope, $state, $routeProvider) {
但我收到错误消息:
Error: [$injector:unpr] Unknown provider: $routeProviderProvider <- $routeProvider
我如何知道我可以将哪些依赖项注入到任何给定的控制器中?
您只能访问控制器中的服务,而不能访问提供程序,因此请在此处使用 $route
。
因此您收到错误 $routeProviderProvider 因为它正在寻找 $routeProvider
的提供者,它本身就是 $route
.[=14 的提供者=]
里面有两相angular
- 配置阶段(这里我们用
app.config
写一段代码) - 运行 阶段(我们使用
app.run
,在 运行 循环之后所有其他指令都使用编译循环执行)
Provider 只是 service/factory 但最重要的是它可以在配置阶段访问。
例子
假设我们有以下供应商
myApp.provider('unicornLauncher', function UnicornLauncherProvider() {
var useTinfoilShielding = false;
this.useTinfoilShielding = function(value) {
useTinfoilShielding = !!value;
};
this.$get = ["apiToken", function unicornLauncherFactory(apiToken) {
return new UnicornLauncher(apiToken, useTinfoilShielding);
}];
});
虽然将其注入到配置中,但您应该始终在其前面加上前缀 Provider
,例如 unicornLauncherProvider
在控制器中使用它时,您可以将其用作 unicornLauncher
注:
Provider are always accessible inside
.config
(configuration) phase with suffixProvider
in their name, While inside controller you could > directly inject it usingunicornLauncher
(direct provider name)Services/Factory They are not visible in config phase of angular
还是一头雾水再参考this link