2016-06-18 20 views
0

私は今のところanglejsと学習の面で非常に新しいです。私は現在、anglejsルートプロバイダーを学んでいます。私は独立して動作するページをいくつか作りました。私は現在ルートプロバイダを実装しようとしています。私のwelcome.htmlページでは、サードパーティ製のスライドアウトパネルを使用していますhttp://dpiccone.github.io/ng-pageslide/examples/anglejsで動作しないカスタムディレクティブrouteprovider

私はそれを1ページで使いました。私は今、ルートプロバイダーを実装しようとしています以下のように

私のindex.html

<html ng-app="ui.bootstrap.demo"> 

<head> 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.js"></script> 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-animate.js"></script> 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-route.js"></script> 
    <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-1.3.3.js"></script> 
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"> 
    <link rel="stylesheet" href="https://rawgit.com/esvit/ng-table/master/dist/ng-table.min.css"> 
    <script src="https://rawgit.com/esvit/ng-table/master/dist/ng-table.min.js"></script> 
    <script src="resources/js/main.js"></script> 
    <script src="resources/js/CarouselController.js"></script> 
    <script src="resources/js/dashboardrouter.js"></script> 
    <script src="resources/js/TypeAheadController.js"></script> 
    <script src="resources/js/angular-pageslide-directive.js"></script> 
</head> 

<body> 
<h2>AngularJS Sample Application</h2> 
<div ng-view></div> 
</body> 
</html> 

私のアプリのファイル

angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap', 'ngTable', 'ngRoute']); 

マイrouteprovider

angular.module('ui.bootstrap.demo').config(['$routeProvider', function($routeProvider) { 
    $routeProvider. 

    when('/welcome', { 
     templateUrl: 'welcome.html', 
     controller: 'CarouselDemoCtrl' 
    }). 

    when('/queryBoard/:gridName', { 
     templateUrl: 'query/queryboard.html', 
     controller: 'documentNameTypeAheadController', 
    }). 

    otherwise({ 
     redirectTo: '/welcome' 
    }); 
}]); 

私のwelcome.htmlファイル

<html ng-app="ui.bootstrap.demo"> 

<body> 

<style type="text/css"> 
    body { 
     background: url(/resources/images/nyc.jpg) center top no-repeat; 
    } 

    .ng-pageslide { 
     background: #ac2925; 
    } 

</style> 
<div> 
    <h1 class="text-center text-primary centered">Welcome to ananta-gs dashboard</h1> 
    <div> 
     <uib-carousel active="active" interval="myInterval" no-wrap="noWrapSlides" style="height: 305px; width: 450px; margin:auto"> 
      <uib-slide ng-repeat="slide in slides track by slide.id" index="slide.id"> 
       <img ng-src="/resources/images/cloud-home.jpg" style="height:305px; margin:auto;"> 
       <div class="carousel-caption"> 
        <a ng-click='sendEnvName(slide.text)'> 
         <h3 class="carousel-caption text-primary center-block"> 
          {{slide.text}}</h3> 
        </a> 
       </div> 
      </uib-slide> 
     </uib-carousel> 
     <a href="" style="background-color: #ac2925" ng-show="errorShow" ng-click="toggle()">There are exceptions during app initialization, click here to see details</a> 
    </div> 

    <div> 
     <pageslide ps-open="checked" ps-side="left" ps-squeeze="true"> 
      <div style="padding:20px" id="demo-right"> 
       <h2>Exceptions : </h2> 
       <p style="word-wrap: break-word">{{exceptions}}</p> 
       <a ng-click="toggle()" class="button">Close</a> 
      </div> 
     </pageslide> 
    </div> 

</div> 
</body> 
</html> 

すべてのブートストラップコンポーネントが正常に動作しています。つまり、カルーセルが正常に動作していて、私のCarouselDemoCntrlもデータのフェッチに使用されていると確信しています。

しかし<pageslide>のようなコンポーネントがangular-pageslide-directive.js

に定義されている動作していない。同様に、私は、ページのqueryboard.htmlがngTableParamsを使用している必要があり、角度もそれを解決することはできません。

pageslideの予想される動作は、「アプリケーションの初期化中に例外があります。詳細を見るにはここをクリック」をクリックすると、例外のリストを含むスライドアウトパネルが表示されるはずです。スライドアウトパネルの代わりに、htmlページにプレーンテキストで表示されます。

以下

がCarouselDemoCtrl

angular.module('ui.bootstrap.demo').controller('CarouselDemoCtrl', function ($scope, $http, $uibModal, $location) { 
    $scope.myInterval = 5000; 
    $scope.noWrapSlides = false; 
    $scope.active = 0; 
    $scope.errorShow = false; 
    var slides = $scope.slides = []; 
    var currIndex = 0; 

    $scope.addSlide = function (envName) { 
     slides.push({ 
      text: envName, 
      id: currIndex++ 
     }); 
    }; 

    $http.get("http://localhost:8080/getEnvList") 
     .success(function (data) { 
      var envs = data.spaceLookUpDetailsList; 
      for (var i in envs) { 
       $scope.addSlide(envs[i].envName); 
      } 


      if(data.exceptions) { 
       $scope.errorShow = true; 
       $scope.exceptions = data.exceptions; 
      } 
     }) 
     .error(function (errordata) { 
      $uibModal.open({ 
       templateUrl: 'error/ErrorModal.html', 
       controller: 'ErrModalInstanceCtrl', 
       resolve: { 
        error: function() { 
         console.log('error=' + errordata.errorMessage) 
         return errordata; 
        } 
       } 
      }); 


     }); 

    $scope.toggle = function() { 
     $scope.checked = !$scope.checked; 
    } 

    $scope.sendEnvName = function (gridName) { 
     alert(gridName) 
     $location.path("/queryBoard/"+gridName); 
    } 

}); 

angular.module('ui.bootstrap.demo').controller('ErrModalInstanceCtrl', function ($scope, $uibModalInstance, error) { 
    $scope.errormessage = error.errorMessage; 
    $scope.stacktrace = error.stackTrace; 

    $scope.ok = function() { 
     $uibModalInstance.close('closed'); 
    }; 
}); 

のコードは、いくつかはここにここに

+0

あなたが投稿したものに基づいて、すべてが正しいように見えます。あなたの 'pageslide'ディレクティブが動作していないと言ったら、それはどういう意味ですか?あなたはその指令の定義を私たちに示しておらず、期待された行動と観察された行動を記述していない。 – Lex

+0

CarouselDemoCtrlコードを投稿してください。 –

+0

@Lex質問が予想通りに更新されていることを確認しました。 –

答えて

2

2つの問題私を導いてくださいすることができます:

まず、あなたは「pageslideディレクティブ(pageslideためのモジュールを挿入しませんでした

:「)

あなたはこれが欲しいです

第2に、テンプレートとしてではなく、別のWebページであるかのようにwelcome.htmlを書きました。 welcome.htmlからhtmlタグとbodyタグを削除すると、すべて設定されているはずです。

+0

で更新されました。それも試してみませんか:( –

+0

@Ambuj Jauhari、私は答えを更新しました。 –

+0

これを修正しました。モジュールにページリダイレクトを追加していませんでしたが、もう一度やり直しました。この質問もよくご覧ください。 http://stackoverflow.com/questions/37902109/unknown-provider-ngtableparamsprovider –

関連する問題