2014-11-05 39 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