2016-11-17 14 views
0

私はAngular JSの新機能です。角度ui-route解決インジェクションの問題

var app = angular.module('app', ['ui.router', 'ngAnimate', 'ngSanitize', 'ui.bootstrap']) 
     .config(function ($stateProvider, $urlMatcherFactoryProvider, $urlRouterProvider) { 
      $urlMatcherFactoryProvider.caseInsensitive(true); 
      $urlRouterProvider.otherwise('/refuel'); 
      $stateProvider.state('refuels', { 
       url: '/refuel', 
       controller: 'refuelController', 
       controllerAs: 'refuelCtrl', 
       resolve: { 
        $refuelsPumpsResolve: function ($http) { 
         return $http({ 
          url: "http://localhost:60000/Refuels/GetUserPumps", 
          method: "GET" 
         }) 
        } 
       } 
      }) 
     }) 
     .controller('refuelController', function ($refuelsPumpsResolve) { 
      var $this = this; 
      this.isOpen = true; 
      this.isOpen = function() { 
       $this.isOpen = !$this.isOpen 
      } 
      this.pumpsData = $refuelsPumpsResolve; 

     }); 

しかし、角度コントローラで$ refuelsPumpsResolveのための「不明なプロバイダの例外がスローされます:

は、私は次のコードを持っています。 私は何の問題も見ません。コードの上に、githubのui-routeチュートリアルがあります。ヘルプ

+0

たぶん、このデバッグ先端が役立つだろう:二行目の1にプロバイダの次のリストを削除してください1つ($ stateProvider、$ urlMatcherFactoryProvider、$ urlRouterProvider)を指定します。それらが参照されている箇所のコードをコメントアウトする必要があります。それが認識されていないプロバイダを確認します。注意:既に完全なエラー記述にこの情報が含まれている可能性があります。次に、そのプロバイダがどのモジュールに属しているかを確認します。モジュールが1行目に含まれていることを確認してください。 – dreamerkumar

+0

@VishalKumar Thanks Kumar、問題は$ refuelsPumpsResolveがコントローラに注入されているようですが、解決策はui-roterと連携していないようですが、それと動作するようです。 – AlexBerd

+0

解決方法:resolveオブジェクトの '$ refuelsPumpsResolve'コントローラーの依存関係などが含まれます。単純な値を返すダミーのresolveオブジェクトを作成します。それを注入する。それが問題を解決すれば、あなたの非同期rqstが何とかエラー出力され、角度のDIがそれを気に入らないかもしれないのでしょうか?私はちょうどここで推測しています。 – jusopi

答えて

0

ため おかげで普段コントローラ、言うために行うように注入を宣言し、これを試してみてください:

resolve: { 
    $refuelsPumpsResolve: ['$http', function ($http) { 
    return $http({ 
     url: "http://localhost:60000/Refuels/GetUserPumps", 
     method: "GET" 
    }) 
    }] 
}