当我运行我的应用程序时,它会指向localhost:9080 /#/并且我在app.html中设置的页眉和页脚被称为:
<div id="wrap">
<main id="main" class="container-fluid clear-top">
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
//content here
</div>
</div>
</nav>
<div ui-view id='content-container'></div>
</main>
</div>
<footer class="footer">
//content here
</footer>
在app.js中我有以下代码:
angular.module(constants.MODULE_NAME).controller('AppCtrl', function ($scope, $state, $log, $http) {
$scope.role = '';
$http.get("htttp://localhost:8082/service/getUserRole")
.then(function (response) {
$scope.role = response.data.context;
debugger;
if ($scope.role.toLowerCase() == "A") {
//direct view to A dashboard
$state.go("app.A");
} else if($scope.context.toLowerCase() == "B"){
//direct view to emplBoyee dashboard
$state.go("app.B");
}
else{
//do nothing
$state.go("app");
}});
});
第一页根据用户加载,如果是用户A则转到用户A仪表板,如果是用户B则转到用户B 仪表板。
现在在A.html和B.html中有链接转到用户。以下是router.js中的代码:
export default ['$stateProvider', '$urlRouterProvider', ($stateProvider, $urlRouterProvider) => {
$stateProvider
.state('app', {
url: '/',
template: require('./app.html'),
controller: 'AppCtrl',
controllerAs: 'app'
})
.state('app.A', {
url: 'A',
template: require('./A/index.html'),
controller: 'ACtrl',
controllerAs: 'a'
})
.state('app.ADetails){
url: 'ADetails/:userId'
template: require('./A/ADetails/index.html'),
controller: 'ADetailsCtrl',
controllerAs: 'adetails'
})
.state('app.B', {
url: B
template: require('./B/index.html'),
controller: 'B',
controllerAs: 'B'
})
.state('app.BDetails){
url: 'BDetails/:userId'
template: require('./B/BDetails/index.html'),
controller: 'BDetailsCtrl',
controllerAs: 'bdetails'
});
$urlRouterProvider.otherwise('/');
}];
我在这里遇到三个问题: 1)每当我刷新页面时,都会调用app.js,它会将我带回仪表板。当我在仪表板中时 页面并单击刷新,然后再次调用app.js。 2)当我在BDetailspage并单击refesh时,它会将我带到仪表板,我希望它在同一页面中。 3)当我点击localhost:9080 /#/最初它调用app.js并且url更改为localhost:9080 /#/ A.当我删除A并点击回车时 控制器不会被调用。只有在刷新页面时才会调用它。
任何人都可以告诉我如何修复它。
答案 0 :(得分:1)
当您刷新AppCtrl正在调用服务并更改状态。因此,您的州不会恢复。
在拨打电话之前,您可以检查状态并在必要时拨打电话。