AngularJS:更改URL,但不是浏览器后退和前进按钮的控制器或模板加载

时间:2016-11-02 05:32:02

标签: javascript html angularjs angular-ui-router

我有一个使用ui路由器设置的父/子方案。当我单击加载页面中的按钮或href时,状态加载模板和控制器成功。但是当我点击浏览器后退按钮或然后转发按钮时,它会更改网址,但没有任何反应。 (我正确添加,整个应用程序在手动点击时工作正常)

另外还有一些你需要知道的信息,我在这里举一个例子。

有一个"创建一个帐户"签名表单中的按钮。当我点击它时,URL从/#/ login更改为/#/ signup。然后,如果我在浏览器中单击后退按钮,它会将URL更改回/#/ login,但没有任何反应,我仍然在注册视图中。然后,如果我将光标移动到注册页面中的文本字段并单击它,模板将立即更改为签名视图。

我尝试了很多方法来解决这个问题,因为一周之后,我仍然无法找到解决方案。如果有人可以帮助解决这个问题,真的很感激。谢谢!

这是我的app.js

    var app = angular.module('inspinia', [
            'ui.router',                    // Routing
            'oc.lazyLoad',                  // ocLazyLoad
            'ui.bootstrap',
            'angularSpinner',                  // Ui Bootstrap
            'oitozero.ngSweetAlert', 
            'ngTable',
            'ngResource',
            'angularUtils.directives.dirPagination',
            'ngTagsInput'
        ]);
    app.config(function($stateProvider, $urlRouterProvider, $ocLazyLoadProvider)   {
    $urlRouterProvider.otherwise('/login');

    $stateProvider
        .state('index', {
            abstract: true,
            url: '/index',
            cache: false,
            templateUrl: 'views/common/content.html',
        })
        // Login View
        .state('login', {
            url: '/login',
            cache: false,
            templateUrl: 'views/login.html',
            controller: 'LoginController',
            data: { pageTitle: 'Login', specialClass: 'gray-bg' }
        })
        // Signup View
        .state('register', {
            url: '/signup',
            cache: false,
            templateUrl: 'views/signup.html',
            controller: 'RegisterController',
            data: { pageTitle: 'Signup', specialClass: 'gray-bg' },
            resolve: {
                loadPlugin: function ($ocLazyLoad) {
                    return $ocLazyLoad.load([
                        {
                            name: 'ngCookies',
                            files: ['js/angular/angular-cookies.min.js'],
                            cache: false
                        }
                    ]);
                }
            }
        })
});

1 个答案:

答案 0 :(得分:0)

此问题是由index.html中的某些CDN引起的。我尝试一一删除,然后发现需要删除的内容。