标签: angular2-routing

如何在 angular2 中导航到新选项卡

是否有一个参数提供给路由器,以便router.navigate()将在浏览器的新选项卡/窗口中打开?

angular2-routing angular

5
推荐指数
1
解决办法
2万
查看次数

Angular 2,如何获取全局激活的路由?

如何在不涉及路由的组件中获取ActivatedRoute?

我尝试这样:

constructor(
  private _route: ActivatedRoute,
) {
  this._route.params.subscribe((params: Params) => {

    console.log(params['param1'], params['param2']);

  });

}
Run Code Online (Sandbox Code Playgroud)

它记录未定义,未定义。

typescript angular2-routing angular

5
推荐指数
1
解决办法
5068
查看次数

<router-outlet> 和 <div ng-view>,AngularJS 和 Angular 路由同时进行

我的应用程序组件(Angular 2 组件,针对index.html 降级)包含以下内容:

  <router-outlet></router-outlet>
  <div ng-view></div>
Run Code Online (Sandbox Code Playgroud)

这就像“在 Angular 和 AngularJS 之间划分路由”中所说的那样 https://angular.io/docs/ts/latest/guide/upgrade.html#!#adding-the-angular-router-and-bootstrap

但 ng-view 没有获取任何 AngularJS 路由。

ng-view无论如何,Angular 2 模板如何工作?我怎样才能同时使用两种类型的路由器?

<router-outlet></router-outlet>也不起作用——这个 html 只是静态地按原样显示在页面上。

我有<base href="/">并且 javascript 控制台没有错误。

谷歌,给我发消息:) who/ajxtaylor

angularjs angular2-routing ng-upgrade angular

5
推荐指数
1
解决办法
3353
查看次数

当 JWT 令牌过期并且用户当前位于受保护位置时,Angular2 将用户重定向到某个地方

我正在使用 auth0 中的 angular2-jwt 包。一切工作正常,但现在我想知道如何重定向当前位于某个路径上的用户,该路径由我的身份验证守卫在其他地方保护。现在,当用户尝试访问受保护的路径时,它会进行重定向。

我知道我可以隐藏组件中的对象,但是我必须在每个受保护的组件中执行此操作,这还不清楚。

这是我的路线:

    const appRoutes: Routes = [
    {path: 'login', component: LoginComponent},
    {path: 'register', component: RegisterComponent},
    {path: '', component: HomeComponent},
    {path: 'user/edit', component: EditProfileComponent, canActivate: [AuthGuard]},
];
Run Code Online (Sandbox Code Playgroud)

这是我的警卫服务:

...

    @Injectable()
export class AuthGuard implements CanActivate {

    constructor(private auth: AuthService, private router: Router) {
        }

        canActivate() {
            if (this.auth.loggedIn()) {
                return true;
            }

            this.router.navigate(['/']);
            return false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

angular2-routing

5
推荐指数
1
解决办法
967
查看次数

Angular 2 Router 等待组件上的动画完成,然后在路由更改时销毁它

我想创建一个模块来侦听路线更改,并在路线更改时根据当前路线和转到下一条路线执行给定的动画。基本上它应该解决这个问题:https://github.com/angular/angular/issues/9845
像这样(草稿注释):https://github.com/bergben/ng2-page-transition/issues/6

现在要做到这一点,我想通过组件进入和离开时的路线数据执行给定的动画。该动画可能会根据当前路线和下一条路线而有所不同。例如,切换到/mainfrom/first可能会触发后退动画,而切换到/mainfrom/second可能会触发前进动画。

现在的问题是:如何将此动画绑定到组件并允许其完成?路由器渲染一个像这样的组件:

<router-outlet></router-outlet>
<my-current-component>...</my-current-component>
Run Code Online (Sandbox Code Playgroud)

但在路线改变时,它会立即销毁<my-current-component>...</my-current-component>并用新组件替换它。

我知道将动画绑定到组件装饰器中的主机如下: https: //github.com/designcourse/angular-auth-demo/blob/master/src/app/login/login.component.ts#L11 允许它们去完成。但我无法更改路由更改时的组件(它是一个常量,请参阅https://angular.io/docs/ts/latest/api/router/index/ActivatedRoute-interface.html#!#component-anchor

我应该提到的是,我发现将另一个元素包裹在渲染的组件周围,例如

<router-outlet></router-outlet>
<div>
   <my-current-component>...</my-current-component>
</div>
Run Code Online (Sandbox Code Playgroud)

防止路由器破坏组件。但直接访问 DOM 并不是最佳实践。我只会认为这是最后的手段。如果有人知道如何<div></div>通过 Angular Renderer 或 ViewContainerRef 等来包装组件,那么我很高兴听到这一点。然后我可以将动画绑定到该<div></div>包装器并在动画完成后手动销毁它。

动画应该在不延迟新组件进入动画的情况下执行。

所以我希望有人能够对如何以最好的方式实现这一目标提出想法/建议。

angular2-routing angular

5
推荐指数
0
解决办法
1217
查看次数

Angular RouterLink queryParamsHandling 处理可选参数

是否有一种干净的方法可以将当前可选的 queryParams 与模板中链接上的附加可选 queryParam 合并?

当前网址:/search;brand=Trek

所需的转到链接:/search;brand=Trek;start=1(startCount 将递增)

我知道 Angular 支持合并普通queryParams 的功能(https://angular.io/docs/ts/latest/api/router/index/RouterLink-directive.html),但我认为它不适用于可选的queryParams。

这就是为什么这不起作用:

<a class="nav-btn"
   queryParamsHandling="merge"
   [routerLink]="[ { start: startCount+1 } ]">
    Next Page
</a>
Run Code Online (Sandbox Code Playgroud)

有什么建议么?

angular2-routing angular

5
推荐指数
1
解决办法
1万
查看次数

Angular2 站点加载时默认活动链接

我在每个链接上使用 Angular2 和 Angular2 [routerLinkActive] 来设置活动链接。这一切都很好。当用户单击链接时,路线将变为活动状态,并且链接会注入“活动”类,我可以相应地设置样式。

但是,在路线设置中,我设置了默认路线,如下所示:

const routes: Routes = [
{ path: '', redirectTo: 'gettiingstarted', pathMatch: 'full' },
Run Code Online (Sandbox Code Playgroud)

只要页面现在在用户首次导航到页面时成功加载“gettingstarted”组件,这种方法就有效,但不幸的是,路由器链接此时尚未注入“active”类,因此样式不正确。获取活动类的唯一方法是实际单击链接。

有谁知道如何让 [routerLinkActive] 机制在页面加载上工作?

更新 这里是链接本身的代码 html:

 <a [routerLink]="['gettingstarted']" [routerLinkActive]="['active']">
Run Code Online (Sandbox Code Playgroud)

angular2-routing angular

5
推荐指数
1
解决办法
4937
查看次数

如何使用 Angular 2 在 URl 中使用问号

我是 Angular 2 的新手,这里显示了将显示我的 url 的路由器代码。 现在路由器代码 ,当我运行该代码时,网址看起来像这样..

本地主机:50465/促销%3Fid%3D/51059

在该网址中显示%3F而不是问号(?)和%3D而不是等于(=)。展示如何显示我的原始网址。我的代码看起来像那样。

我想这样输出: http://localhost:50465/promotion?id=132

如何才能实现这一点,请帮助我。

请帮我..!!

javascript angular2-forms angular2-routing angular

5
推荐指数
1
解决办法
2497
查看次数

为什么 Angular 激活的路由参数类型为“any”?

出于好奇,我尝试将ActivatedRoute的 param 分配给定义为数字的变量:

public id: number;

constructor(public activatedRoute: ActivatedRouter) {}

public ngOnInit() {
    this.activatedRoute.params.take(1).subscribe((params) => {
        this.id = params['id']; // I was expecting to see a warning here
    }
}
Run Code Online (Sandbox Code Playgroud)

...并且它在我的 IDE 和 tslint 中没有任何警告地通过了。所以我深入研究它并发现它发出声明的参数此处)以包含any元素:

export type Params = {
  [key: string]: any
};
Run Code Online (Sandbox Code Playgroud)

问题是为什么?AFAIK 所有参数始终是字符串。有没有办法让 Angular 知道我们的一些参数应该是numberorarray并且它会解析它?

angular-routing angular2-routing angular angular-router

5
推荐指数
0
解决办法
1405
查看次数

防止 Angular 2 将 &lt;a href="#"&gt; 重定向到主页

我有一个指向仪表板的示例登录页面。登录页面设置为初始重定向页面,并路由至仪表板。仪表板包含一个带有一些链接的下拉菜单。每次单击链接时,它都会重定向到登录页面。但是,当重新加载仪表板页面时,下拉菜单可以完全正常工作。

我正在考虑使用“event.preventDefault()”作为链接,但我希望有一个解决方法。

仪表板菜单 - HTML

<div class="navbar-default sidebar" role="navigation">
  <div class="sidebar-nav navbar-collapse">
    <ul class="nav" id="side-menu">
      <li>
        <a href="#"><i class="fa fa-calendar fa-fw"></i> Manage Events<span class="fa arrow"></span></a>
        <ul class="nav nav-second-level collapse">
          <li>
            <a href="#">Lorem Ipsum</a>
          </li>
          <li>
            <a href="#">Lorem Ipsum</a>
          </li>
        </ul>
        <!-- /.nav-second-level -->
      </li>
    </ul>
  </div>
  <!-- /.sidebar-collapse -->
</div>
Run Code Online (Sandbox Code Playgroud)

编辑:在得到一些回复后,我想澄清我的主要问题。问题存在于链接为空链接,并且 Angular 2 将其视为空链接并导致其重定向。如果我能找到一种解决方法来告诉 Angular,不要将此链接视为空链接,那将是理想的选择。

javascript angular2-routing angular

5
推荐指数
1
解决办法
1万
查看次数