在没有路由器插座的情况下使用Angular 5路由器是否安全?

时间:2018-03-04 23:48:39

标签: angular routing

我能找到关于同一主题的最接近的问题是:angular 4 router without router-outlet

...但它是关于Angular 4中的一个实验性功能,似乎不再受支持了。

我有一个现有的天文网络应用程序(http://skyviewcafe.com/)根本不使用路由。所有各种功能都可以通过标签界面访问,不会改变路线。

我希望能够使用URL来指定哪个选项卡式面板出现,然后最终比设置时间和位置以及查看选项的URL更进一步,因此一个人可以使用URL来显示另一个人对天文事件有特殊看法。

到目前为止看起来我没有路由器插座就好了:http://test.skyviewcafe.com/

到目前为止,我没有尝试过应用程序或抛出任何控制台异常。我只是订阅路由器事件,所以我知道何时更改选择哪个选项卡:

router.events.subscribe(event => {
  if (event instanceof NavigationEnd) {
    const url = event.url;
    const newTab = tabNames.map(name => '/' + name).indexOf(url);

    if (newTab >= 0)
      this.currentTab = newTab;
    else
      this.currentTab = CurrentTab.SKY;
  }
});

...并在选择标签时导航到路线:

public set currentTab(newTab: CurrentTab) {
  if (this._currentTab.getValue() !== newTab) {
    this._currentTab.next(newTab);
    this.router.navigate(['/' + tabNames[this._currentTab.getValue()]]);
  }
}

我对结果感到满意,但是我感到唠叨的感觉它不正确以这种方式进行路由。

如果标签视图是我每条路线唯一改变的地方,我该怎么做才能使用路由器插座?使标签只是装饰性的,而不是实际拥有任何标签式面板,用<router-outlet></router-outlet>替换标签下方的整个区域?

0 个答案:

没有答案