J'ai le code suivant dans mon service: Ce que je veux faire est d'appeler cette fonction dans mon contrôleur lorsque la page (vue) est chargée. P> testApp.controller('testController', ['$scope', '$location', 'databaseService','detailsService', '$routeParams', function($scope, $location, databaseService, $routeParams, detailsService){
$scope.details;
var selectedDetails = function(name){
detailsService.getDetails(name).then(function(data){
$scope.details= data;
});
};
selectedDetails(name);
}]);
3 Réponses :
L'erreur est attendue car vous n'allez pas injection de dépendances correctement, vous devez utiliser la séquence correcte.
testApp.controller('testController', ['$scope', '$location', 'databaseService', 'detailsService', '$routeParams', function($scope, $location, databaseService, $routeParams, detailsService){
Je veux juste ajouter, cette question expliquera ce que les [] sont tous sur ceux qui ne savent pas, et veulent. Stackoverflow.com/Questtions/18032068/...
Supprimer la promesse dans le service.Juste retour de la demande. Puisque vous attrapez la promesse du contrôleur, il n'est pas nécessaire de l'utiliser dans le service
testApp.controller('testController', ['$scope', '$location', 'databaseService', 'detailsService', '$routeParams', function($scope, $location, databaseService, detailsService , $routeParams) { $scope.details; var selectedDetails = function(name) { detailsService.getDetails(name).then(function(data) { $scope.details = data; }); }; selectedDetails(name); }]);
J'ai reçu cette erreur car j'avais ajouté une méthode de rappel à un composant, mais le rappel n'a pas été utilisé par toutes les pages où ce composant a été utilisé:
if (undefined !== this.myCallbackFn) this.myCallbackFn();
Dupliqué possible de Angular - TypeError: XX n'est pas une fonction