私は自分のアプリケーションを実行すると、それは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>
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、それがユーザーBにそれを行く場合:私は、次のコードを持っているapp.jsで
ダッシュボード。
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)私がlocalhost:9080 /#を押すと、最初にapp.jsが呼び出され、localhost:9080 /#/ A.にURLが変更され、Aを削除してEnterキーを押すと、コントローラはcalled.Itを取得しませんページを更新するときにのみ呼び出されます。
誰でも私にそれを修正する方法を教えてもらえますか?
ご協力いただきありがとうございます。私は問題1と2を修正することができました。しかし、私はまだissue#3の問題を抱えています。localhost:9080 /#/を打つと、最初にapp.jsが呼び出され、localhost: A.Aowを削除してコントローラを呼び出すと、呼び出されません。これは、ページを更新するときにのみ呼び出されます。 – Valla
コントローラは、その状態が既に初期化されているので、再び呼び出されるとは思わない。あなたは状態の変化を聞くことができ、あなたはAかBを表示するかどうかをチェックできますか? –