0
當我運行我的應用程序將其引導到localhost:9080 /#/與我建立在app.html被稱爲頁眉和頁腳:App.js控制器問題,同時使用狀態提供AngularJS
<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然後它給用戶的儀表板,如果用戶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('/');
}];
我這裏有三個問題
:每當我刷新頁面app.js被稱爲 1),它把我帶回到了儀表板。當我在儀表板 頁面中並單擊刷新時,再次調用app.js。 2)當我在BDetailspage並點擊refesh它將我帶到儀表板,我希望它在同一頁面。 3)當我打本地主機:9080 /#/最初它調用app.js和URL更改爲本地主機:9080 /#/ A.現在當我刪除A並擊中輸入 控制器不會被調用。它得到僅在刷新頁面時才被調用。
任何人都可以讓我知道它是如何修復的。
感謝您的幫助。我能夠解決問題1和2.但我仍然遇到問題#3。當我打localhost:9080 /#/最初它調用app.js和URL更改爲localhost:9080 /#/答:現在當我刪除A並點擊進入時,控制器不會被調用。它只在刷新頁面時才被調用。 – Valla
我不認爲控制器會被再次調用,因爲該狀態已經被初始化。也許你可以聽狀態變化,並檢查你是否想顯示A或B? –