AngularJS从带有锚的链接发出两次导航事件

AngularJS从带有锚的链接发出两次导航事件,angularjs,anchor,Angularjs,Anchor,当我来自具有锚定的子页面时,我的主控制器会运行两次: 从返回到导致我的HomeController运行两次 在HTML5模式下,AngularJS在锚定方面似乎不稳定。您是否遇到过类似的问题或找到了解决方案 路由代码如下所示 $routeProvider .when('/', { templateUrl : 'home.html', controller : 'HomeCtrl' }) .

当我来自具有锚定的子页面时,我的主控制器会运行两次:

从返回到导致我的HomeController运行两次

在HTML5模式下,AngularJS在锚定方面似乎不稳定。您是否遇到过类似的问题或找到了解决方案

路由代码如下所示

    $routeProvider
        .when('/', {
            templateUrl : 'home.html',
            controller  : 'HomeCtrl'
        })

        .when('/versions', {
            templateUrl : 'versions.html',
            title       : 'Changelog'
        })

        ...

有什么想法吗?

看看返回是否仍然会产生双重运行。

是的,仍然会。我自己刚刚测试过。啊,
home.html
文件是否包含属性为
ng controller=“HomeCtrl”
的标记?这将导致HomeCtrl.Nope的双重实例化,ng控制器在我的代码中的任何地方都不存在。我正在使用$routeProvider并在那里定义控制器;这至少会给你一个指示,说明两个控制器是在哪里设置的。谢谢你的提示-找到了原因:在
$scope.$apply(function(){$location.path(path)})中有一个错误的指令。