<分区>
我有一个使用 ui 路由器设置的父/子方案。当我在加载页面中单击按钮或 href 时,使用模板和 Controller 状态加载成功。但是当我单击浏览器后退按钮或前进按钮时,它会更改 url,但没有任何反应。 (我添加正确,手动点击时整个应用程序工作正常)
还有一个信息你需要知道,我在这里举个例子。
签名表单中有一个“创建帐户”按钮。当我单击它时,URL 从/#/login 更改为/#/signup。然后,如果我在浏览器中单击后退按钮,它会将 URL 更改回/#/login,但什么也没有发生,我仍在注册 View 中。然后,如果我将光标移动到注册页面中的文本字段并单击它,模板将立即更改为签名 View 。
一周以来我尝试了很多方法来解决这个问题,但仍然找不到解决方案。如果有人可以帮助解决这个问题,真的很感激。谢谢!
这是我的 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
}
]);
}
}
})
});