[英]Routing from Login page to app angular2
使用angular2是一个新手,正在开发一个应用程序。 我被困在登录页面上。 单击登录按钮后,URL会更改,但视图不会更改。 我有3个组成部分:主要(定义路线),登录名和应用程序。
import { Component } from 'angular2/core';
import { ROUTER_DIRECTIVES, Router, RouteConfig, RouterOutlet } from 'angular2/router';
import { app } from './app.component';
import { Login } from './login.component';
@Component({
selector: 'main',
template: '<router-outlet></router-outlet>',
directives: [RouterOutlet]
})
@RouteConfig([
{ path: '/app/:searchId', name: 'App', component: App },
{ path: '/login', name: 'Login', component: Login,useAsDefault:true }
])
export class RouteComponent {
}
//some imports...
@Component({
template:`<button (ngSubmit)=onSubmit(username,password)>`})//did not include other labels and inputs etc`
export class Login{
onSubmit(username:string,password:string)
{
some authentication....
this._router.navigate(['App',{searchId:this.sessionId}]);
}
}
import { bootstrap } from 'angular2/platform/browser';
import{provide} from "angular2/core";
import { ROUTER_PROVIDERS,LocationStrategy,HashLocationStrategy } from 'angular2/router';
import { RouteComponent } from './main';
bootstrap(RouteComponent,[
ROUTER_PROVIDERS,
provide(LocationStrategy,{useClass:HashLocationStrategy})
]);
如果浏览器位置已更新,但视图未更新,则是因为未找到路由。 您应该尝试更新此行
this._router.navigate(['App',{searchId:this.sessionId}]);
同
this._router.navigate(['../App',{searchId:this.sessionId}]);
login
的路由器实例是您在main
拥有的一个实例
导入App
组件时,我在您的代码中看到一个错字:
import { Component } from 'angular2/core';
import { ROUTER_DIRECTIVES, Router, RouteConfig, RouterOutlet } from 'angular2/router';
import { app } from './app.component'; // <--------
import { Login } from './login.component';
@Component({
selector: 'main',
template: '<router-outlet></router-outlet>',
directives: [RouterOutlet]
})
@RouteConfig([
{ path: '/app/:searchId', name: 'App', component: App },
{ path: '/login', name: 'Login', component: Login,useAsDefault:true }
])
export class RouteComponent {
}
您应该改用以下代码:
import { App } from './app.component';
onSubmit
方法也是Login
组件中的OnSubmit
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.