需要对the Angular2 sample app at this GitHub link进行哪些具体更改才能将login
路由上的用户点击直接重定向到node.js服务器的/login
路由?< / strong>
我仔细剖析了该应用,并看到boot.js
从app.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???
}
}
<小时/> 部分解决方案:
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
路由管理对服务器的此调用,还需要更改哪些内容?