2016-06-28 86 views
0

我有一個帶有標籤的角度應用程序。我有一個下拉菜單,看起來像這樣的導航欄:點擊超鏈接不觸發旅行

<ul class="dropdown-menu" dropdown-menu> 
    <li><a href="/page1">page 1</a></li> 
    <li><a href="/page2#/tab1/">page 2</a></li> 
    <li><a href="/page2#/tab2">page 3</a></li> 
</ul> 

當我第1頁上,我可以到任何第2頁或第3頁就好了。網址更改並加載頁面以顯示該選項卡上的內容。

問題是這樣的:當我在頁面2或頁面3上時,單擊指向其他頁面的超鏈接會導致url更改,但頁面不會加載新內容。

無論我在哪個頁面上,我如何確保超鏈接的行爲一致?

回答

1

'第2頁'和'第3頁'是同一頁(第2頁)。 URL中#之後的任何內容都是片段標識符,片段標識符指示在加載時應將頁面發送到哪裏。

通常當你使用的變量,比如「TAB1」,你的JavaScript加載該選項卡(這超出了問題的範圍)

延伸閱讀:https://en.wikipedia.org/wiki/Fragment_identifier#Examples (獎金:注意如何您的瀏覽器直接到'Examples'部分?)

更新:在評論中,您提到想要使頁面更改看起來一致...以下代碼應該可以工作,因爲它向URL添加了一個「查詢」參數 - 雖然它仍然指向相同的文件,但瀏覽器需要刷新URL,因爲它無法確定將從Web服務器提供相同的內容。

<ul class="dropdown-menu" dropdown-menu> 
    <li><a href="/page1">page 1</a></li> 
    <li><a href="/page2?tab=1#/tab1/">page 2</a></li> 
    <li><a href="/page2?tab=2#/tab2">page 3</a></li> 
</ul> 
+0

聰明的獎金。 但我想要的是一個超鏈接,表現一貫,無論你在哪個頁面上。在你的例子中,當我點擊鏈接時,它會在新標籤頁中打開維基百科。滾動並點擊提案雖然只是簡單地跳轉到提案。 我想要的是這兩個超鏈接打開新標籤中的鏈接(或其他任何用戶設置的,以便超鏈接是一致的) –

+0

我已經用一個代碼示例更新了答案, '要求 –

+0

就像一個魅力。謝謝 –

0

嘗試這樣做:

HTML:

<ul class="dropdown-menu" dropdown-menu> 
    <li><a href="#page1">page 1</a></li> 
    <li><a href="#page2">page 2</a></li> 
    <li><a href="#page2">page 3</a></li> 
</ul> 
<div id="page1">Content of Page 1</div> 
<div id="page2">Content of Page 2</div> 
<div id="page3">Content of Page 3</div> 

JQUERY:

<script type="text/javscript"> 
    $('#page1').click(function() { 
     $('#page1').show(); 
     $('#page2').hide(); 
     $('#page3').hide(); 
    }) 
    $('#page2').click(function() { 
     $('#page2').show(); 
     $('#page1').hide(); 
     $('#page3').hide(); 
    }) 
    $('#page3').click(function() { 
     $('#page3').show(); 
     $('#page2').hide(); 
     $('#page3').hide(); 
    }) 
</script> 
+0

這有把我所有頁面的範圍放在一個頁面上的缺點。它與角度(programmatcially切換控制器?)並沒有很好的匹配,最重要的是不會持續通過頁面刷新。 –

+0

@ForrestKeppler是什麼意思?我認爲它可以正常工作。當你點擊頁面1時,你的鏈接將如下所示:{yourlink}#page1然後它將滾動到你的頁面內容1.使用Hide()隱藏不重要的內容。如果你認爲你會使用靈活的內容,只需使用你的Ajax。 :) –