9

設定方法で$httpサービスを利用する必要があります。しかし、私は設定で$httpを使用することはできません、私はunknown Providerエラーメッセージが表示されます。

マイコード:

.config(function($http, $routeProvider, $provide) { 
    $http.get("sampleslist.js").success(function(data) { 
     var loop = 0, currentRoute; 

     for (loop = 0; loop < data[loop].pages.length; loop++) { 
      currentRoute = data[loop].pages; 

      var routeName = "/" + currentRoute[loop].name; 
      $routeProvider.when(routeName, { 
       templateUrl:"/" + currentRoute.name + ".html", 
      }) 
     } 
    }) 

    app = {controller: $controllerProvider.register} 
}) 

あなたは、このためのソリューションを提供していただけますか?

+3

を使用しています。ただし、実行段階で使用することはできます。 【App.configファイルにサービスを注入]の –

+1

可能な重複(http://stackoverflow.com/questions/15937267/inject-service-in-app-config) – scokmen

答えて

3

ちょうどあなたが実際に新しいインジェクタから$ HTTP Serverを取得することができますAJAXリクエストを作成する必要がある場合:私たちは、設定でHTTPを使用することはできません

.config(function($routeProvider, $provide) { 
    var $http = angular.injector(['ng']).get('$http'); 
    $http.get("sampleslist.js").success(

     function(data) { 

      var loop = 0, 
       currentRoute; 

      for (loop = 0; loop < data[loop].pages.length; loop++) { 

       currentRoute = data[loop].pages; 

       var routeName = "/" + currentRoute[loop].name; 

       $routeProvider.when(routeName, { 

        templateUrl: "/" + currentRoute.name + ".html", 

       }) 
      } 
     }) 

    app = { 
     controller: $controllerProvider.register, 
    } 
}) 
+0

$ routeProvider.when(routeName、{ }) この機能は打撃を与えません、なぜですか? –

+0

私は、OPがAngularが入力した(意図的な)制限を回避することを提案しません。それでもなお、「成功」は廃止されたメソッドであり、使用すべきではありません。このように '$ http'にアクセスすることは危険なようです... –

3

あなたはの.configファイル内の唯一のプロバイダを注入することができます。 $ httpはプロバイダではありません。あなたの角型アプリは$ httpという名前のプロバイダを検索していますが、それを見つけることができず、エラーが発生しました。

解決方法

あなたの角度コントローラの負荷前に、AJAX呼び出しをしたい場合、あなたはそれが.config$httpを使用することをお勧めしません.RUN

+0

' .run'は、角度ページがロードされた後、* before *で実行されることが保証されています。 –

+0

私の知る通り/これを読むのは、上記の私が言ったことは、あなたはコントローラをロードする前に何かを実行することができます。私はページの読み込みではなく、データに言及する必要があります。 app.configを() app.run() ディレクティブのコンパイル機能(これらはDOMで発見された場合) app.controller() ディレクティブのリンク機能(再び、見つかった場合) –

+0

はそれを約ない答え –

4

でそれを行うことができます。 .runで使用するか、.serviceまたは.factoryのいずれかを使用してサービスを利用できます。

+0

を編集しました練習。 .configに$ httpを挿入することはできません。 –

1

sampleslist.jsを支配していますか?はいの場合は、タグを使用してダウンロードし、変数に値を割り当てます。

//sampleslist.js 
var samplelist = {...} 

//index.html 
<script src="samplelist.js"></script> 

その後、あなたはangular.constantを使用して、角には、この値を注入できたか、単にあなたが設定段階で$ HTTPを使用することはできません、言ったように、まあ変数samplelist

+0

あなたの更新をありがとう - Yariash –

関連する問題