![](/img/trans.png)
[英]AngularJS : How to make my Controller variable available on all page context?
[英]How to make factory data available before controller loads page in angularJS
我正在使用工廠進行$http
呼叫,並將數據共享給所有控制器。
實際上,我是從config.json
文件中獲取該數據的,但首先,負載數據並未廣播到所有控制器。
我希望數據在控制器可以在內部進行進一步調用之前可用。
我的config.json
具有app_key
, app_secret
, base_url
等,這是我的工廠(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)。
ngoApp.controller('loginCtrl',['$scope','$http', '$localStorage', '$state','UserService','$rootScope', function($scope, $http, $localStorage, $state, UserService, $rootScope) {
//I want to access app_key as below format
$scope.app_key=UserService.app_key;
}]);
誰能告訴我我犯了什么錯誤?
加載此依賴項的正確位置是模塊的run / config方法。
在此處查看文檔: https : //docs.angularjs.org/guide/module#module-loading-dependencies例如,還有更多信息...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.