我认为注入位置就像注入Http一样.然而,如果我在最后一行取消注释“公共位置:位置”,我的应用程序会中断 – 页面无法呈现.据我所知,我有正确的import和providers数组:
import {Component} from 'angular2/core'; import { ROUTER_DIRECTIVES,ROUTER_PROVIDERS,RouteConfig,Location,LocationStrategy,HashLocationStrategy } from 'angular2/router'; import {TaskForm} from './task_form'; import {TaskList} from './task_list'; import {AboutUs} from './about_us'; @Component({ selector: 'task-app',templateUrl: 'app/task_app.html',providers: [ROUTER_PROVIDERS],directives: [TaskForm,TaskList,ROUTER_DIRECTIVES] }) @RouteConfig([ {path: '/',component: TaskApp,as: 'Home'},{path: '/about_us',component: AboutUs,as: 'aboutUs'} ]) export class TaskApp { constructor(/*public location: Location*/) {
在我的index.html中,我有以下行:
<script src="https://code.angularjs.org/2.0.0-beta.0/router.dev.js"></script>
import {bootstrap} from 'angular2/platform/browser'; import {HTTP_PROVIDERS} from 'angular2/http'; import {provide} from 'angular2/core'; import { ROUTER_DIRECTIVES,HashLocationStrategy } from 'angular2/router'; import {TaskApp} from './task_app'; import {MyService} from './my_service' bootstrap(TaskApp,[HTTP_PROVIDERS,MyService,provide(LocationStrategy,{useClass: HashLocationStrategy})]);
不确定我是否遗漏了某些内容或当前版本是否已损坏.如果是第一种情况,我错过了什么?
解决方法
在你的NgModule中
providers: [ { provide: 'locationObject',useValue: location} ]
在您的组件中,您需要将其注入
import { Component,Inject } from '@angular/core'; constructor( @Inject('locationObject') private locationObject: Location ) {}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。