Javascript 为什么可以';t AngularJS解决此依赖关系
MyApp.js:Javascript 为什么可以';t AngularJS解决此依赖关系,javascript,angularjs,dependency-injection,Javascript,Angularjs,Dependency Injection,MyApp.js: 'use strict'; angular.module('MyApp', [ 'ngRoute', 'MyApp.components.hello', 'MyApp.pages.index', 'MyApp.pages.upload' ]). config(['$routeProvider', 'HelloService', function($routeProvider, HelloService) { $routeProvid
'use strict';
angular.module('MyApp', [
'ngRoute',
'MyApp.components.hello',
'MyApp.pages.index',
'MyApp.pages.upload'
]).
config(['$routeProvider', 'HelloService', function($routeProvider, HelloService) {
$routeProvider.
when('/',
{
templateUrl: 'pages/index/index.html',
controller: 'IndexController'
}).
when('/upload',
{
templateUrl: 'pages/upload/upload.html',
controller: 'UploadController'
}).
otherwise({redirectTo: '/'});
HelloService.init({
facebook : ID_HERE
});
}]);
hello-service.js:
'use strict';
angular.module("MyApp.components.hello", []).
factory("HelloService", function()
{
return window.hello; //assume hello has been loaded
});
当我尝试运行它时,我得到了错误
错误:[$injector:unpr]未知提供程序:HelloService
。为什么?HelloService在MyApp.components.hello中有明确定义,它作为主应用程序的依赖项包含。那么为什么它找不到HelloService呢?我认为您无法将服务注入配置块
配置块-在提供程序注册期间执行
和配置阶段。只能注入提供程序和常量
进入配置块。这是为了防止意外实例化
在完全配置服务之前,服务的数量
我认为您不能将服务注入配置块 配置块-在提供程序注册期间执行 和配置阶段。只能注入提供程序和常量 进入配置块。这是为了防止意外实例化 在完全配置服务之前,服务的数量
我认为您不能将服务注入配置块 配置块-在提供程序注册期间执行 和配置阶段。只能注入提供程序和常量 进入配置块。这是为了防止意外实例化 在完全配置服务之前,服务的数量
我认为您不能将服务注入配置块 配置块-在提供程序注册期间执行 和配置阶段。只能注入提供程序和常量 进入配置块。这是为了防止意外实例化 在完全配置服务之前,服务的数量 检查这篇文章: 约塞波特 这一节呢 您可能想知道,如果工厂、值等更简单,为什么有人会费心用provide方法建立一个成熟的提供者。答案是提供者允许大量的配置。我们已经提到,当您通过提供者(或Angular提供的任何快捷方式)创建服务时,您将创建一个新的提供者,该提供者定义了服务的构造方式。我没有提到的是,这些提供者可以被注入到应用程序的配置部分,这样您就可以与它们交互了 首先,Angular分两个阶段运行应用程序——配置和运行阶段。正如我们所看到的,配置阶段是您可以根据需要设置任何提供者的地方。这也是设置指令、控制器、过滤器等的地方。正如您可能猜到的,运行阶段实际上是Angular编译DOM并启动应用程序的阶段 那么,问题在哪里
- 我们可以要求将
注入提供者
.config()
- 但是-它们在
中使用,只是要配置,而不是要使用.config()
- 我们可以要求将
注入提供者
.config()
- 但是-它们在
中使用,只是要配置,而不是要使用.config()
- 我们可以要求将
注入提供者
.config()
- 但是-它们在
中使用,只是要配置,而不是要使用.config()
.run(['HelloService', function(HelloService) {
HelloService.init({
facebook : ID_HERE
});
}])