我正在尝试$routeProvider
在我的控制器中使用依赖项:
.controller('mainController', function($scope, $state, $routeProvider) {
但我收到错误:
Error: [$injector:unpr] Unknown provider: $routeProviderProvider <- $routeProvider
我如何知道可以将哪些依赖项注入任何给定的控制器?
我正在尝试$routeProvider
在我的控制器中使用依赖项:
.controller('mainController', function($scope, $state, $routeProvider) {
但我收到错误:
Error: [$injector:unpr] Unknown provider: $routeProviderProvider <- $routeProvider
我如何知道可以将哪些依赖项注入任何给定的控制器?
您只能访问控制器中的服务,而不是$route
此处使用的提供程序。
因此,您会收到错误$routeProviderProvider,因为它正在寻找$routeProvider
本身就是$route
.
角度内部有两个阶段
app.config
用来写一段代码)app.run
,在运行周期之后,所有其他指令都使用编译周期执行)提供者不过是服务/工厂,但最重要的是它可以在配置阶段访问。
例子
假设我们有以下提供者
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
笔记:
提供者始终可以在
.config
(配置)阶段以名称后缀访问Provider
,而在控制器内部,您可以>使用unicornLauncher
(直接提供者名称)直接注入它服务/工厂它们在角度的配置阶段不可见
仍然感到困惑然后请参考此链接