2017-08-09 61 views
0

我通過路由和通過選擇器訪問相同的組件。因此,「/項目」路線的項目列表組成部分,Angular 2組件訪問上下文 - 選擇器vs路由

<projects></projects> 

使用組件爲好。我想知道使用哪種方法訪問組件。底線 - 路線訪問是一個完整頁面,組件訪問位於一個小部件中。如果通過小部件訪問,我想改變一些事情的工作方式。

+0

對於Angular 2+使用[標籤:角],爲角1.x使用[標籤:angularjs] – 0mpurdy

回答

2

您可以檢查路由URL

進樣private activatedRoute: ActivatedRoute在組件的構造函數,你可以得到的網址,如下所示

this.activatedRoute.url.subscribe(urlPath=>{}); 

檢查urlPath如果projects那麼它通過路由否則它是通過選擇

+0

謝謝。我想我可能需要這樣做。我實際上是抽象這個結構,我不想強​​制路線匹配實體。我正在尋找一個標誌,告訴組件如何被調用,而不是檢查路徑。有關於此的任何想法? –

0

嘗試一下做法吧。 將輸入變量@Input() isRoute: boolean = true;添加到您的組件並將其默認值設置爲true。 使用選擇器時,請使用如下形式: <projects [isRoute]="false"></projects>。 現在,當此組件在路由中打開時,它將設置isRoute爲true,否則當此組件通過選擇器打開時,isRoute將爲false。 :)