AngularJS-不需要的IE8重定向

AngularJS-不需要的IE8重定向,angularjs,internet-explorer-8,click,Angularjs,Internet Explorer 8,Click,使用AngularJS,可以: <a ng-click="Click()" ng-href="#">Click me</a> 在IE8中重定向到/#。正如这一点: <a ng-click="Click()" href="#">Click me</a> 这是: <a ng-click="Click()">Click me</a> 点击我 最后一个去/。我遵循所有让IE快乐的准则: <!--[if lt I

使用AngularJS,可以:

<a ng-click="Click()" ng-href="#">Click me</a>

在IE8中重定向到/#。正如这一点:

<a ng-click="Click()" href="#">Click me</a>

这是:

<a ng-click="Click()">Click me</a>
点击我
最后一个去/。我遵循所有让IE快乐的准则:

<!--[if lt IE 9]>
  <script src="js/3rd party/html5.js"></script>
<![endif]-->
<!--[if lte IE 8]>
  <script>
    document.createElement('ng-include');
    document.createElement('ng-pluralize');
    document.createElement('ng-view');
    document.createElement('ng:include');
    document.createElement('ng:pluralize');
    document.createElement('ng:view');
  </script>
<![endif]-->
<!--[if lt IE 8]>
  <script src="js/3rd party/json2.js"></script>
<![endif]-->

包括使用:

<div ng-view></div>

这在IE7或任何好的浏览器中都不会发生。只有IE8

我只想让它调用我的作用域的Click函数,而不做任何重定向。如何在IE8中实现这一点?

关闭HTML5模式

$locationProvider.html5Mode(false);
这将解决问题,但我的问题是为什么


更好的解决方案是使用按钮而不是按钮

<button ng-click="Click()" class="link">Click me</button>

按钮
在IE8中不能正常工作。

我知道这是一篇旧文章,但是
返回false在ng click处理程序中不起作用

我发现我必须将event.result设置为false,这样jQuery在angular完成了一点后会使用事件

$scope.Click = function ($event) {                

            // needed for IE8 - jQuery will preventDefault action for href=#                
            if ($event != undefined) {
                $event.result = false;
            }
        }
点击我

如果您使用的是bootstrap,其中有一个下拉菜单,这将特别有用

<button type="button" class="btn dropdown-toggle btn-primary" ng-disabled="disabled">
    Actions <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
    <li><a href="#" ng-click="Click1($event)">Option 1</a></li>
    <li><a href="#" ng-click="Click2($event)">Option 2</a></li>
    <li><a href="#" ng-click="Click3($event)">Option 3</a></li>        
</ul>

行动

尝试添加
返回false
Click()
函数的末尾没有帮助,仍然得到重定向。在
Click()
中有什么?另一种方法是在
Click()
函数中使用
$event.preventDefault()
,并将修改html添加到:
Click($event)
但是
return false
应该做同样的事情,我认为
ng Click
应该可以防止默认设置:$(“#spinnerdiv”).spin();一个简单的spin.js jQuery调用。删除它也不会对行为产生影响。请尝试使用
href=“javascript:
而不是
href=“#”
它有助于我们支持旧版本的Firefox,可能适合您。这是我面临的一个问题,虽然很简单,但你的回答为我指出了问题的根源。非常感谢。
<button type="button" class="btn dropdown-toggle btn-primary" ng-disabled="disabled">
    Actions <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
    <li><a href="#" ng-click="Click1($event)">Option 1</a></li>
    <li><a href="#" ng-click="Click2($event)">Option 2</a></li>
    <li><a href="#" ng-click="Click3($event)">Option 3</a></li>        
</ul>