Angular 2相当于window.location.href?

Zor*_*hgo 10 angular-new-router angular

如何在Angular 2中导航到不同的URL?我知道我们可以使用JavaScript

window.location.href ='...';

但这似乎是错误的,会导致页面刷新.我非常确定Angular 2中应该有一些功能,允许您在不刷新页面的情况下在URL之间移动.我似乎无法在文档中找到它.

提前致谢!

pun*_*nov 12

根据文档,您可以使用Router及其导航功能来更改当前状态,并在必要时传递参数:

import {Component, ...} from 'angular2/angular2';
import {Router, ...} from 'angular2/router';
import {HomeCmp} from '../home/home';

@Component({
  selector: 'app',
  // params of your component here
})
@RouteConfig([
  { path: '/', component: HomeCmp, as: 'MyHome' },
  // your other states here
])

export class AppCmp {
  router: Router;
  constructor(router: Router) {
    this.router = router;
  }
  navigateToHome() {
    // for example, that's how we can navigate to our home route
    this.router.navigate(['./MyHome', {param: 3}]);
  }
}
Run Code Online (Sandbox Code Playgroud)

这是官方文档的链接.

以下是种子项目的链接,其中包含使用路由器的一个很好的示例.

  • 这仅适用于在应用程序内部导航.例如,您不能使用它来路由到完整的外部URL,例如`http:// www.cnn.com`. (5认同)
  • @MichaelOryl是需要导航到外部url的情况,你可以简单地使用`window.location.href ='http:// www.cnn.com'`.否则只需按照答案. (5认同)
  • 那就是非常不稳定的@MacKentoch (4认同)