2017-02-27 5 views
0

工場で$httpコールを作成し、すべてのコントローラにデータを共有しています。コントローラがangularJSのページをロードする前に工場データを利用する方法

実際には、このデータはconfig.jsonファイルから取得されていますが、最初にロードデータがすべてのコントローラにブロードキャストされていません。
コントローラーが後で電話をかける前にデータを利用できるようにしたい。

マイconfig.jsonapp_keyapp_secretbase_urlなどがあり、ここに私の工場(JSコード)

JS

.factory('UserService', function($http, $rootScope) { 

    $http.get('config.json').success(function(data) { 
     var app_key = data.app_key; 
     var app_secret = data.app_secret; 
     var base_url=data.base_url; 
     window.localStorage['app_key'] = app_key; 
     window.localStorage['app_secret'] = app_secret; 
     window.localStorage['base_url'] = base_url; 


    }) 

    return { 
     app_key : window.localStorage['app_key'], 
     app_secret : window.localStorage['app_secret'], 
     base_url:window.localStorage['base_url'], 

    } 
}) 

がある私のconfig.jsonファイルには、この

{ 
    "app_key" : "my_app_key_here", 
    "app_secret" : "my_app_secret_here", 
    "base_url" : "http://base_url.com", 
} 

のように見えます私がapp_keyを返す理由:window.localStorage ['app_key']は、このようなサービスデータにアクセスする必要があるからですコントローラのuserService.app_key。

​​

誰でも私が作っている間違いを教えていただけますか?

答えて

-1

この依存関係をロードする正しい場所は、モジュールの実行/設定方法です。ここ

チェックドキュメント:例えばhttps://docs.angularjs.org/guide/module#module-loading-dependencies、より多くの情報...

+0

こんにちは@elCarda返事をありがとう、あなたは私に、このような呼び出しを行うための任意のフィドルや小さな例を提供してくださいできますか? –

関連する問題