Angular2路由器没有渲染视图
问题描述:
我在获取Angular2渲染视图时遇到问题。没有错误报告。Angular2路由器没有渲染视图
下面是代码,如果有人能帮助我将非常感激:
AppComponent:
import { Component, View } from 'angular2/core';
import { MasterCourseDetailsComponent } from './master.course.details';
import { MasterCourseListComponent } from './master.course.list';
import {RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS, LocationStrategy, HashLocationStrategy} from 'angular2/router';
@Component({
selector: 'master-course'
})
@View({
directives: [ROUTER_DIRECTIVES, MasterCourseListComponent, MasterCourseDetailsComponent],
templateUrl: '/ECAV.Admin/App/views/master-course-app.html'
})
@RouteConfig([
{ path: '/masterCourselist', name: 'MasterCourseList', component: MasterCourseListComponent, useAsDefault:true},
{ path: '/masterCourseDetails:', name: 'MasterCourseListDetails', component: MasterCourseDetailsComponent }
])
export class MasterCourseAppComponent {
title: string;
constructor() {
this.title = 'App title';
}
}
硕士课程列表组件:
import {Component, View, OnInit} from 'angular2/core';
import { RouterLink, RouteParams } from 'angular2/router';
import {ROUTER_DIRECTIVES} from 'angular2/router';
@View({
templateUrl: '/Site.Admin/App/views/master-course-list.html',
directives: [ROUTER_DIRECTIVES ],
})
export class MasterCourseListComponent implements OnInit {
ngOnInit() {
console.log('ngOnInit');
}
}
硕士课程详情:
import {Component, View, OnInit} from 'angular2/core';
import { RouterLink, RouteParams } from 'angular2/router';
import {ROUTER_DIRECTIVES} from 'angular2/router';
@View({
templateUrl: '/Site.Admin/App/views/master-course-details.html',
directives: [ROUTER_DIRECTIVES],
})
export class MasterCourseDetailsComponent implements OnInit {
ngOnInit() {
console.log('ngOnInit');
}
}
引导
<script src="~/node_modules/angular2/bundles/router.dev.js"></script>
<master-course>Loading...</master-course>
<script>
System.import('/Site.Admin/App/boots/boot.master.course')
.then(null, console.error.bind(console));
</script>
硕士课程查看:
<header>
<nav>
<ul>
<li>
<a [routerLink]="['MasterCourseList']">Course List</a>
</li>
<li>
<a [routerLink]="['MasterCourseListDetails']">Master Course Details</a>
</li>
</ul>
</nav>
</header>
<a [routerLink]="['MasterCourseList']">Home</a>
<main>
<routerOutlet></routerOutlet>
</main>
列表视图
<div> here is the master course List</div>
详细查看
<div> here is the master course details</div>
谢谢。
答
你有没有设置你的HTML入口文件内的基本标签:
<base href="/">
它使用PathLocationStrategy
(默认的)时需要。有关更多详细信息,请参阅Angular2文档:https://angular.io/docs/ts/latest/api/router/PathLocationStrategy-class.html。
编辑
我认为你应该使用<router-outlet></router-outlet>
而不是<routerOutlet></routerOutlet>
:
<main>
<router-outlet></router-outlet>
</main>
嗨亨利,是的,我试过了。没有运气。有没有一种方法来调试呢?什么都没有放入routerOutlet元素 – KnowHoper
嘿!你使用哪种方法:'PathLocation'或'HashBang'?你可以在你的问题中加入你如何引导你的应用程序?谢谢! –
我想你应该使用' router-outlet>'而不是' routerOutlet>'。我更新了我的答案... –