2016-07-10 7 views
1

Ich versuche, gemeinsame Provider und in eckigen App-Konfigurations-Set Daten im Anbieter zu verwenden.

.provider('userData', function() { 
    var authUser = {}; 
    return { 
     checkUser: function() { 
      // wish to able use $http here for request to get data from service 
      // save all data into 'authUser' object 
      // $get return 'authUser' object 
     }, 
     getCookie: function(value) { 
      // wish to able use $http here 
     }, 
     $get: function() { 
      // only for return object 
      return authUser; 
     } 
    } 
}) 

app.config(['userDataProvider', function(userDataProvider) { 

    userDataProvider.checkUser(); 
}); 

.controller('headerCtrl', ['$scope', 'userData', '$http', function($scope, userData, $http) { 
    // use inside all controllers/directives 'userData' 
}); 

Ich versuche $ http als Parameter in $ get-Funktion zu verwenden -> funktioniert nicht: Fehler:

$get: function($http) { 
    return authUser; 
} 

Auch ich kann keine gültige Beispiel finden innerhalb Anbieter $ http. Inside Service/Factory $ http funktioniert gut, aber ich muss Daten in Provider von Config-Funktion vorbereiten.

+0

Es scheint für mich arbeiten, können Sie überprüfen, [dies hier] (http://jsfiddle.net/97eremed/) & versuchen, ein Problem zu replizieren .. –

+0

@PankajParkar aber probiere es in der Config-Phase aus, wenn die Dienste noch nicht verfügbar sind – charlietfl

+0

@charlietfl Entschuldigung, mir muss etwas Dummes fehlen, um zu verstehen, was passiert, [diese Geige] (http://jsfiddle.net/7byp2wdv/) habe ich erstellt . –

Antwort

0

Service s, factory & value sind nicht in der Config Phase von Design verfügbar.

Sie könnten es tun, in run()

app.run(['userData', function(userData) { 

    userData.checkUser(); 
}); 
Verwandte Themen