本文介绍了Angular 2错误:提供程序无效-仅允许提供程序和类型的实例,得到了:[object Object]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在将ui-router2与angular2-rc-4集成在一起,但是我得到了
I am integrating ui-router2 with angular2-rc-4 but i am getting
以下是引导代码
import {trace, UIROUTER_PROVIDERS, UIView, UIRouterConfig, Category, UIROUTER_DIRECTIVES} from "ui-router-ng2";
import {HTTP_PROVIDERS} from "@angular/http";
import {provide, PLATFORM_DIRECTIVES} from "@angular/core";
import {LocationStrategy, HashLocationStrategy, PathLocationStrategy, PlatformLocation} from "@angular/common";
import {BrowserPlatformLocation} from '@angular/platform-browser';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/map';
import { APP_BASE_HREF } from '@angular/common';
import { disableDeprecatedForms, provideForms } from '@angular/forms';
import { enableProdMode } from '@angular/core';
import { bootstrap } from '@angular/platform-browser-dynamic';
import { InitialStates } from './app.routes';
import { AppComponent } from './app.component';
import {MyUIRouterConfig} from "./_bootstrap/router.config";
if ('' === 'prod') { enableProdMode(); }
trace.enable(Category.TRANSITION, Category.VIEWCONFIG);
bootstrap(UIView, [
disableDeprecatedForms(),
provideForms(),
InitialStates,
{
provide: APP_BASE_HREF,
useValue: ''
},
provide(LocationStrategy, { useClass: HashLocationStrategy }),
provide(LocationStrategy, { useClass: PathLocationStrategy }),
provide(PlatformLocation, { useClass: BrowserPlatformLocation }),
...UIROUTER_PROVIDERS,
...HTTP_PROVIDERS,
provide(UIRouterConfig, { useClass: MyUIRouterConfig }),
provide(PLATFORM_DIRECTIVES, {useValue: [UIROUTER_DIRECTIVES], multi: true})
]);
以下是我的路由器配置.
Following is my router config.
import {UIRouter} from "ui-router-ng2";
import {InitialStates} from "../app.routes";
import {Injectable, Injector} from "@angular/core";
@Injectable()
export class MyUIRouterConfig {
constructor(private injector: Injector) {}
configure(uiRouter: UIRouter) {
// Register each state definition (from app.states.ts) with the StateRegistry
InitialStates.forEach(state => uiRouter.stateRegistry.register(state));
// Define a default behavior, for when the URL matched no routes
uiRouter.urlRouterProvider.otherwise(() => uiRouter.stateService.go("app", null, null) && null);
}
}
推荐答案
如果您输入以下内容,则会为一个简单的错字引发相同的错误:
The same error is thrown for a simple typo, if you write this:
{ provider: MyService, useValue: myServiceMock }
代替此:
{ provide: MyService, useValue: myServiceMock }
请注意 provider
和 provide
之间的区别.正确的是提供
.
Note the difference between provider
and provide
. The correct is provide
.
希望这会有所帮助.
这篇关于Angular 2错误:提供程序无效-仅允许提供程序和类型的实例,得到了:[object Object]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!