2017-06-24 5 views
0

私は1.6の角度でブログを作ろうとしていますが、サービスを作成して設定ファイルに挿入する以外はすべて正常に動作します。テストディレクティブはうまく動作し、myServiceサービス/ factoryを注入するとブレークします。コンフィグブロックにサービスや工場をインジェクトするときのエラー

app.coffee

app = angular.module 'dts',['ngRoute'] 

app.service 'myService', -> 
    this.asd = "" 

app.directive 'ngHello', -> 
    return { 
     restrict:'E' 
     replace: true 
     template: "<h1>Hola mundo</h1>" 
     link: (scope,element,attrs)-> 

    } 

config.coffee

app = angular.module 'dts' 

app.config ["$locationProvider","$routeProvider","myService", ($locationProvider,$routeProvider,myService)-> 

    $routeProvider 

     .when "/", 
      controller: "mainCtrl" 
      templateUrl: "/app/views/index.html" 

     .when "/blog", 
      controller: "blogCtrl" 
      templateUrl: "/app/views/blog/index.html" 

     .when "/blog/post/:id", 
      controller: "blogCtrl" 
      templateUrl: "/app/views/blog/single.html" 

     .when "/contact", 
      controller: "contactCtrl" 
      templateUrl: "/app/views/contact.html" 

     .otherwise '/' 



    $locationProvider.html5Mode 
     enabled: true 
     requireBase: false 
] 

スクリプトは私が間違ってやっている何

script(src="/js/libs/angular.min.js") 
script(src="/app/modules/angular-route.min.js") 
script(src="/app/app.js") 
script(src="/app/services/slugs.js") 
script(src="/app/config.js") 
script(src="/app/controllers/main.js") 
script(src="/app/controllers/blog.js") 

が含まれて?

1.6バージョンでサービスまたは工場に関する問題を検索しましたが、何も見つかりませんでした。角度を1.5.6にダウングレードしても機能しません。

私はアプリのファイルへのサービス/工場を移動しようとしましたが、

+0

なぜサービスを設定に注入しようとしていますか? – charlietfl

+0

私はルートを作りたいです。私はデータベースのルートのリストのようなスラッグを作成する: ブログ/ポスト/ lorem-ipsum-dolor これを行うには最適な方法は何ですか? – uruapanmexicansong

+0

それはあまり明確ではない – charlietfl

答えて

1

を(私はservices.jsにそれを作成する前に)あなたは、あなたが設定機能にサービスを注入することはできませんconfigにmyServiceProviderを注入する必要がありすぎて壊れ

+0

ありがとう、いくつかの過去の例では、私はサービスの名前を使用し、それはうまく動作しますが、決して設定で使用しようとしたことはありません! – uruapanmexicansong

0
ドキュメントから

モジュールのロード&依存

  • 構成ブロック - プロバイダの登録と構成フェーズで実行されます。 プロバイダーと定数のみを構成ブロックに注入できます。これは、サービスが完全に構成される前に誤ってサービスがインスタンス化されるのを防ぐためです。

— AngularJS Developer Guide - Modules (Loading & Dependencies)

ルートテーブルは、サービスによって作成または変更することはできません。

一方、サービスは、アプリケーションの実行フェーズで呼び出されるため、ルートテーブルの解決機能に注入可能です。

関連する問題