如何在angular2中注入位置?
我认为注入位置的方式与注入Http的方式相同。但是,我的应用程序中断-如果我取消最后一行中的“public location:location”注释,则页面不会呈现。就我所见,我有正确的导入和提供程序数组:如何在angular2中注入位置?,angular,angular2-routing,Angular,Angular2 Routing,我认为注入位置的方式与注入Http的方式相同。但是,我的应用程序中断-如果我取消最后一行中的“public location:location”注释,则页面不会呈现。就我所见,我有正确的导入和提供程序数组: import {Component} from 'angular2/core'; import { ROUTER_DIRECTIVES, ROUTER_PROVIDERS, RouteConfig, Location, LocationStrategy
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>
不确定我是否错过了什么,或者当前构建已损坏。如果是第一个案例,我错过了什么?在您的NGM模块中
providers: [
{ provide: 'locationObject', useValue: location}
]
在您的组件中,您需要这样注入它
import { Component, Inject } from '@angular/core';
constructor(
@Inject('locationObject') private locationObject: Location
) {}
你做得对,你就是这样注射的。您在控制台中看到任何错误吗?PS:从组件中删除
ROUTER\u PROVIDERS
,它已经在引导中。我建议您完全删除node\u modules文件夹,删除package.json中与angular2相关的所有内容,然后重试安装。@EricMartinez,终于解决了环境问题。没有编译错误,但在运行时,在控制台中,它抱怨我没有指定APP_BASE_HREF。。。一旦我在引导中添加了“provide(APP_BASE_HREF,{useValue:'/'})”之后,一切都正常了。然而,根据文档,只有在使用PathLocationStrategy(,这是默认值)时才需要这样做,但我认为我特别指定了HashLocationStrategy。
import { Component, Inject } from '@angular/core';
constructor(
@Inject('locationObject') private locationObject: Location
) {}