将Angular2路由重定向到服务器路由

时间:2016-07-26 20:42:41

标签: javascript angularjs node.js angular ecmascript-6

需要对the Angular2 sample app at this GitHub link进行哪些具体更改才能将login路由上的用户点击直接重定向到node.js服务器的/login路由?< / strong>

我仔细剖析了该应用,并看到boot.jsapp.routes.js获取路线,后者又将login路线的处理委托给login.component.js。同样,node.js /login路由由router.js在服务器上处理。

我的理解是,需要在login.component.js中进行Angular2更改,以便login.template.html永远不会被提供,因此无论用户触发什么事件,都会点击Angular {{ 1}}路由通过重定向到服务器login路由来处理。这是真的?如果是,我如何更改login.component.js如下:

/login

出于这些目的,node.js router.js路由可以变为:

import { Component } from '@angular/core';
import { Router } from '@angular/router';

@Component({
  selector: 'login',
  directives: //???
})
export class LoginComponent {

  constructor(router: Router) {
    this._router = router;
    //what else goes here???
  }
}

<小时/> 部分解决方案:
为了遵循@ soyuka的建议,我在menu.component.js添加了以下方法:

router.post('/login', function*() {
    console.log('Inside Node.js router.js /login route!');
});

然后我将以下内容添加到menu.template.html

goToNodeLogin() {
  window.location.href='/login';
}

我将以下 GET 处理程序添加到Node.js服务器的<li><a (click)="goToNodeLogin()">Go to Node.js /login route</a></li>

router.js

当用户单击链接时,将触发服务器路由并打印控制台输出。但浏览器出现404错误,该链接不属于Angular2 router.get('/login', function*() { console.log('You made it to Node.js /login route!'); }); 路由(或任何其他路由)。

为了让Angular login路由管理对服务器的此调用,还需要更改哪些内容?

0 个答案:

没有答案