Javascript 由于某种原因,AngularJS上的页面会自动刷新

Javascript 由于某种原因,AngularJS上的页面会自动刷新,javascript,html,angularjs,Javascript,Html,Angularjs,在我的应用程序中,每当我单击通过$routeprovider加载不同部分的链接时,页面就会定期刷新。然后,除了刷新外,它还会将我带回到默认部分,即,我必须再次单击链接才能到达我想要去的地方。我根本没有使用任何刷新页面的方法;为什么会发生这种情况 另外,有趣的是,当我点击任何非$routeprovider链接时,这种情况不会发生。以下是我的routeProvider: .config(['$routeProvider', '$locationProvider', function($rou

在我的应用程序中,每当我单击通过$routeprovider加载不同部分的链接时,页面就会定期刷新。然后,除了刷新外,它还会将我带回到默认部分,即,我必须再次单击链接才能到达我想要去的地方。我根本没有使用任何刷新页面的方法;为什么会发生这种情况

另外,有趣的是,当我点击任何非$routeprovider链接时,这种情况不会发生。以下是我的routeProvider:

.config(['$routeProvider', '$locationProvider',
    function($routeProvider, $locationProvider) {
        $routeProvider.
            when('/', {
                templateUrl: "index.html"
            }).
            when('/profile/:id', {
                templateUrl: "profile.html",
                controller: 'UsersController as profiledUser'
            }).
            when('/gift/:id', {
                templateUrl: "gift.html",
                controller: 'GiftsController as profiledGift'
            }).
            when('/users-form', {
                templateUrl: "users-form.html",
                controller: 'UsersController as newUser'
            }).
            when('/login-form', {
                templateUrl: "login-form.html",
                controller: 'UsersController as loginUser'
            }).
            when('/gifts-form', {
                templateUrl: "gift-form.html",
                controller: 'GiftsController as newGift'
            }).
            when('/about', {
                templateUrl: "about.html"
            }).
            otherwise({
                redirectTo: '/'
            });
以下是其中一个链接的示例,当在Chrome的开发工具中检查时,该链接链接指向当前登录的用户的个人资料:

<a href="#profile/5" data-ng-click="template=1" style="color: white;">Profile</a>
这是代码中的相同链接,它是导航栏的一部分:

<li><a href="#profile/{{id}}" data-ng-click="template=1" style="color: white;">Profile</a></li>

再次重申,偶尔单击上述任何链接都会重定向到。否则会刷新页面。我无法可靠地重现这种行为,因为它似乎是随机发生的;奇怪的是,即使我从配置中删除了.Others路由,也会发生这种情况。

看起来您试图通过单击标记一次完成两件事,但只发生了一件事:

默认操作,位于href中,表示load UsersController+profile view和 在当前上下文中设置template=1 即使出现template=1,一旦切换到UsersController,您也不再有权访问此设置

试着这样做:

<a href="#/profile/{{id}}/{{template}}">Profile</a>

或者,对模板=1使用$rootScope或其他一些全局上下文,这样只要您注入了依赖项,它就始终可用于任何controller+视图。

什么浏览器和版本?浏览器是Chrome,Angular是v1.3.1。您能提供更多信息吗?可能会显示违规路由是如何设置的,以及链接html在源html和在chrome中检查时的外观。我想知道将链接更改为是否会有所不同?不幸的是,ng href仍然存在此问题。
.when('/profile/:id/:template', {
  controller: 'UsersController as profiledUser',
  templateUrl: 'profile.html'
})