簡體   English   中英

如何在控制器加載angularJS頁面之前使工廠數據可用

[英]How to make factory data available before controller loads page in angularJS

我正在使用工廠進行$http呼叫,並將數據共享給所有控制器。

實際上,我是從config.json文件中獲取該數據的,但首先,負載數據並未廣播到所有控制器。
我希望數據在控制器可以在內部進行進一步調用之前可用。

我的config.json具有app_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)。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM