【发布时间】:2017-01-18 22:50:07
【问题描述】:
我正在学习 Angular2 框架,只是卡在了中间。目标 - 从所需组件(主页)加载视图的简单应用程序。
这是我所拥有的:
app/app.ts
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);
app/app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component';
import { DemoService } from './services/demo.service';
import { routing } from './app.routing';
@NgModule({
imports: [
BrowserModule,
FormsModule,
HttpModule,
routing
],
declarations: [
AppComponent,
HomeComponent
],
providers: [
DemoService,
],
bootstrap: [ AppComponent ]
})
export class AppModule {
}
app/app.component.ts
import {Component} from '@angular/core';
import {DemoService} from './services/demo.service';
import {HomeComponent} from './home/home.component';
import {routing,
appRoutingProviders} from './app.routing';
@Component({
selector: 'app',
template: require('./app.component.html'),
providers: [DemoService]
})
export class AppComponent {}
/app/app.component.html
<div>AppComponent</div>
../index.html
<!DOCTYPE html>
<html>
<body>
<app>Loading...</app>
</body>
</html>
app/home/home.component.ts
import {Component, OnInit} from '@angular/core';
import {DemoService} from '../services/demo.service';
@Component({
selector: 'home',
template: require('./home.component.html')
})
export class HomeComponent implements OnInit {
title: string = 'Home Page';
body: string = 'This is the about home body';
message: string;
constructor(private _stateService: DemoService) { }
ngOnInit() {
this.message = this._stateService.getMessage();
}
updateMessage(m: string): void {
this._stateService.setMessage(m);
}
}
app/app.routing.ts
import { ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './home/home.component';
const appRoutes: Routes = [
{
path: '/',
component: HomeComponent
}
];
export const appRoutingProviders: any[] = [
];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
app/home/home.component.html
<div>HomeComponent</div>
由于它来自组件定义,我有各自的 DemoSevice,目前没有任何作用。启动应用程序后,我得到“正在加载...”,其他没有任何变化。
你能建议我正确的路径吗?
【问题讨论】:
-
你能检查浏览器控制台吗?
-
你有什么错误吗?看看控制台,你确定你的
./app.component.html有<router-outlet></router-outlet>? -
首先从
app/app.component.ts中删除providers: [DemoService]。然后检查浏览器控制台,让我们知道错误。 -
@micronyks,删除了供应商声明。控制台什么都没有 - 空的。
-
@PankajParkar,不确定 router-outler,我为什么需要它?我想我没有。它应该在哪里?