2016-06-26 10 views
0

私はAngularJsで作業していますが、現在私はui-routerに問題があります。 'home.logged.board.patientDashboard'という状態の 'patientBoard'ビューは、親状態のビューを置き換えません。私はなぜこれをやっているのかわからない、私はコンソールにエラーがなく、すべてのtemplateUrlが正しい。 ビュー名 'patientBoard'を 'patientBoard @'に置き換えようとしましたが、何もしていません...私はanynoneが私に与えるすべての助けに感謝します。親ビューは置き換えられません

おかげ

index.htmlを

<!DOCTYPE html> 
<html lang="en" ng-app="neat"> 
    <head> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <title>NEAT</title> 
     <base href="/"> 
     <link rel="stylesheet" type="text/css" href="webjars/bootstrap/3.3.6/css/bootstrap.min.css"> 
     <link rel="stylesheet" type="text/css" href="../css/style.css"> 
     <script src="webjars/jquery/1.12.4/jquery.min.js"></script> 
     <script src="webjars/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
     <script src="webjars/angularjs/1.5.7/angular.min.js"></script> 
     <script src="webjars/angular-ui-router/0.2.18/angular-ui-router.min.js"></script> 
     <script src="../js/utils/utils.js"></script> 
     <script src="../js/neat.js"></script> 
    </head> 
    <body ng-controller="LanguageController"> 
     <div ng-controller="AuthenticationController"> 
      <header> 
       <div ui-view="navigationBar"></div> 
      </header> 
      <div ui-view></div> 
     </div> 
    </body> 
</html> 

board.html

<div class="container-fluid board"> 
    <div class="row"> 
     <div ui-view="patientBoard" class="col-sm-8"></div> 
     <div ui-view="messageBoard" class="col-sm-4"></div> 
    </div> 
</div> 

neat.js

angular.module('neat', ['ui.router', 'ngStomp', 'pascalprecht.translate']) 
    .config(function ($stateProvider, $urlRouterProvider) { 
     $stateProvider 
      .state('home', { 
       url: '/', 
       views: { 
        '': { 
         templateUrl: '/views/login/login.html' 
        }, 
        'navigationBar': { 
         templateUrl: '/views/navbar/navigationBar.html' 
        } 
       } 
      }) 
      .state('home.logged', { 
       abstract: 'true', 
       views: { 
        '@': { 
         templateUrl: '/views/board/board.html' 
        } 
       } 
      }) 
      .state('home.logged.board', { 
       resolve: { 
        homeHref: function(RequestService) { 
         return RequestService.getHome() 
          .then(function(response){ 
           return response.data; 
          }); 
        } 
       }, 
       views: { 
        'patientBoard' : { 
         templateUrl: '/views/board/patient/patientTable.html', 
         controller: 'PatientTableController' 
        }, 
        'messageBoard' : { 
         templateUrl: '/views/board/message/messageBoard.html', 
         controller: 'MessageBoardController' 
        } 
       } 
      }) 
      .state('home.logged.board.patientDashboard', { 
       params: { 
        patientHref: null 
       }, 
       resolve: { 
        patientInfo: function($stateParams, RequestService) { 
         return RequestService.get($stateParams.patientHref) 
          .then(function(response) { 
           return response.data; 
          }) 
        } 
       }, 
       views: { 
        'patientBoard' : { 
         templateUrl: '/views/board/patient/patientDashboard.html', 
         controller: 'PatientDashboardController' 
        } 
       } 
      }) 
      .state('home.logged.board.patientDashboard.patientInfo', { 
       views: { 
        '': { 
         templateUrl: '/views/board/patient/dashboard/patientInfo.html' 
        } 
       }, 
       controller: 'PatientInfoController' 
      }) 
      .state('home.logged.board.patientDashboard.patientAnalysis', { 
       views: { 
        '': { 
         templateUrl: '/views/board/patient/dashboard/patientAnalysis.html' 
        } 
       }, 
       controller: 'PatientAnalysisController' 
      }) 
      .state('home.logged.board.patientDashboard.patientHistory', { 
       views: { 
        '': { 
         templateUrl: '/views/board/patient/dashboard/patientHistory.html' 
        } 
       }, 
       controller: 'PatientHistoryController' 
      }); 

     $urlRouterProvider.otherwise('/'); 

    }); 

答えて

1

home.logged.board.patientDashboardが子供であるので、 home.logged.boardの、状態(patientDashboard)はhome.logged.boardで "patientBoard"という名前のui-viewを検索しています。

home.loggedのchildDashboardの子を作成してください(例:home.logged.patientDashboard)。正常に動作するはずです。上のより多くのINFOMATIONチェックUI-ルータのドキュメントについては

.state('home.logged.patientDashboard', { params: { patientHref: null }, resolve: { patientInfo: function($stateParams, RequestService) { return RequestService.get($stateParams.patientHref) .then(function(response) { return response.data; }) } }, views: { 'patientBoard' : { templateUrl: '/views/board/patient/patientDashboard.html', controller: 'PatientDashboardController' } } })

Nested states and views

+0

それが動作するようになりました!本当にありがとう! – gqmartins

関連する問題