2014-11-05 45 views
2

UPDATE#2:我已經實現了一個按鈕和UI Bootstrap,並且沒有使用Angular Routing接收菜單,但是,我無法在選擇菜單後摺疊一個菜單項和重新路由。無法在Angular路由中使用引導程序崩潰功能

UPDATE:按照建議,我已經更新了上述監聽到這個(沒有效果):

$('a:not([data-toggle="collapse"])').click(function (e) { 
    var url = $(e.currentTarget).attr('href') || '#'; 
    if (!(url.charAt(0) == '#')) { 
     window.location.href = url; 
    } 
}); 

所有爲這個應用程序的角度代碼似乎是在JS /編譯.min.js - 如果出現問題,肯定會從這裏開始,對吧?

我從以前的開發人員那裏繼承了一些工作,這些開發人員有一些令人頭痛的時髦代碼。如果您在Chrome中訪問http://www.executionists.com/#/並將視口更改爲移動設備,則會看到該菜單無法正常工作,因爲它處於較大的視口中。

當你點擊菜單按鈕Angular嘗試路由頁面,當然這會導致404頁面。我不能爲我的生活弄清楚它爲什麼要嘗試路由以及如何阻止它。我嘗試過的東西。

在這裏列出(下摺疊部分)的方式使用UI引導:http://angular-ui.github.io/bootstrap/

有一點要注意的是,我不得不把以下修補到位,以解決那裏的角度路由不是允許瀏覽器中的另一個bug歷史發揮作用。我發現了一個常見問題。但是,當我將修復程序,路由和歷史記錄功能作爲整個站點的需要時,我懷疑這是導致我的移動友好的可摺疊菜單錯誤的原因。修復:

// This is required for links to work properly with the browser history 
$('[ng-app]').on('click', 'a', function() { 
    window.location.href = $(this).attr('href'); 
}); 

我不知道該怎麼做,甚至如何最好地診斷問題。

回答

0

你的目標與聽衆的各個環節,也許是更具體:

$('a:not([data-toggle="collapse"])').click(function (e) { 
    var url = $(e.currentTarget).attr('href') || '#'; 
    if (!(url.charAt(0) == '#')) { 
     window.location.href = url; 
    } 
}); 
+0

奇怪的是,有沒有任何影響,我可以看到。當菜單切換按鈕仍然嘗試通過Angular進行路由時,普通鏈接按照它們應該的方式工作。 – 2014-11-06 00:56:11