工場で$http
コールを作成し、すべてのコントローラにデータを共有しています。コントローラがangularJSのページをロードする前に工場データを利用する方法
実際には、このデータはconfig.json
ファイルから取得されていますが、最初にロードデータがすべてのコントローラにブロードキャストされていません。
コントローラーが後で電話をかける前にデータを利用できるようにしたい。
マイconfig.json
はapp_key
、app_secret
、base_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。
誰でも私が作っている間違いを教えていただけますか?
こんにちは@elCarda返事をありがとう、あなたは私に、このような呼び出しを行うための任意のフィドルや小さな例を提供してくださいできますか? –