异常:RouterOutlet 实例化期间出错
EXCEPTION: Error during instantiation of RouterOutlet
我尝试在 Angular 2.
中添加登陆页面
// app.ts
<div *ngIf="isSignedIn">
<nav>
<a [routerLink]="['Home']">Dashboard</a>
<a [routerLink]="['About']">Heroes</a>
</nav>
<router-outlet></router-outlet>
</div>
<div *ngIf="!isSignedIn">
<landing-component></landing-component>
</div>
奇怪的是,当我第一次登录时它运行良好。
但是当我退出并重新登录时,它会显示:
EXCEPTION: Error during instantiation of RouterOutlet!.
ORIGINAL EXCEPTION: Cannot reuse an outlet that does not contain a component.
这个错误是什么意思?
或者还有其他方法可以添加着陆页吗?谢谢
也许这个笨蛋对你有帮助,和你说的有同样的错误
Plunker
@Component({
selector: 'compLogin'
})
@View({
template: `<div>CompLogin</div><button (click)="onClick()">Click</button>,
directives: [RouterOutlet]
})
但是如果你在 selector: 'compLogin'
中添加这个 -><router-outlet></router-outlet>
@Component({
selector: 'compLogin'
})
@View({
template: `<div>CompLogin</div><button (click)="onClick()">Click</button>
<router-outlet></router-outlet>`,
directives: [RouterOutlet]
})
效果很好。
Plunker
对不起我的英语,我希望你能理解me.I希望它能帮到你
https://www.dartdocs.org/documentation/angular2/2.0.0-beta.7/angular2.router/RouterOutlet/reuse.html
我不确定,但我认为我问题中的问题可能是因为当我退出时,<router-outlet></router-outlet>
将消失。所以当我用router去登陆组件时,就显示错误
我改成了这个结构,现在可以用了。
<div>
<nav *ngIf="isSignedIn">
<a [routerLink]="['Home']">Dashboard</a>
<a [routerLink]="['About']">Heroes</a>
</nav>
<router-outlet></router-outlet>
</div>
使用Router去登陆组件。并且登陆组件有自己的<nav></nav>
。并且登陆组件可以有自己的子路由器。
我尝试在 Angular 2.
中添加登陆页面// app.ts
<div *ngIf="isSignedIn">
<nav>
<a [routerLink]="['Home']">Dashboard</a>
<a [routerLink]="['About']">Heroes</a>
</nav>
<router-outlet></router-outlet>
</div>
<div *ngIf="!isSignedIn">
<landing-component></landing-component>
</div>
奇怪的是,当我第一次登录时它运行良好。
但是当我退出并重新登录时,它会显示:
EXCEPTION: Error during instantiation of RouterOutlet!.
ORIGINAL EXCEPTION: Cannot reuse an outlet that does not contain a component.
这个错误是什么意思?
或者还有其他方法可以添加着陆页吗?谢谢
也许这个笨蛋对你有帮助,和你说的有同样的错误
Plunker
@Component({
selector: 'compLogin'
})
@View({
template: `<div>CompLogin</div><button (click)="onClick()">Click</button>,
directives: [RouterOutlet]
})
但是如果你在 selector: 'compLogin'
中添加这个 -><router-outlet></router-outlet>
@Component({
selector: 'compLogin'
})
@View({
template: `<div>CompLogin</div><button (click)="onClick()">Click</button>
<router-outlet></router-outlet>`,
directives: [RouterOutlet]
})
效果很好。
Plunker
对不起我的英语,我希望你能理解me.I希望它能帮到你
https://www.dartdocs.org/documentation/angular2/2.0.0-beta.7/angular2.router/RouterOutlet/reuse.html
我不确定,但我认为我问题中的问题可能是因为当我退出时,<router-outlet></router-outlet>
将消失。所以当我用router去登陆组件时,就显示错误
我改成了这个结构,现在可以用了。
<div>
<nav *ngIf="isSignedIn">
<a [routerLink]="['Home']">Dashboard</a>
<a [routerLink]="['About']">Heroes</a>
</nav>
<router-outlet></router-outlet>
</div>
使用Router去登陆组件。并且登陆组件有自己的<nav></nav>
。并且登陆组件可以有自己的子路由器。