Convertir Angulaire HTTP.obtenez fonction pour un service
Je suis en train de convertir Angulaire HTTP.get
fonction dans ma controllers.js
à un service dans services.js
.
Les exemples que j'ai trouvés ont toutes façons contradictoires à mettre en œuvre le service et le choix de leurs noms est source de confusion. En outre, la réelle angulaire de la documentation pour les services utilise encore une autre syntaxe que tous les exemples. Je sais que c'est super simple, mais s'il vous plaît aidez-moi ici.
J'ai app.js
, controllers.js
, services.js
, filters.js
.
app.js
angular.module('MyApp', []).
config(['$routeProvider', function($routeProvider)
{
$routeProvider.
when('/bookslist', {templateUrl: 'partials/bookslist.html', controller: BooksListCtrl}).
otherwise({redirectTo: '/bookslist'});
}
]);
controllers.js
function BooksListCtrl($scope,$http) {
$http.get('books.php?action=query').success(function(data) {
$scope.books = data;
});
$scope.orderProp = 'author';
}
Vous devez vous connecter pour publier un commentaire.
Penser en termes de modules et de l'injection de dépendance.
Donc, disons que vous avez ces trois fichiers
Vous aurait besoin de trois modules
1. L'Application Principale Du Module
Avis que les deux autres modules sont injectés dans le module principal, de sorte que leurs composants sont disponibles pour l'ensemble de l'application.
2. Les Contrôleurs De Module
Actuellement votre contrôleur est une fonction globale, vous pouvez l'ajouter dans une contrôleurs module
Books
est passé à la fonction de contrôleur et est mis à disposition par le module de services qui ont été injectés dans l' principal application module.3. Module De Services
C'est là que vous définissez votre
Books
service.Il existe de multiples façons de l'enregistrement de services.
Ma préférence en utilisant le
factory
de la fonction et de l'avoir juste de retour d'un objet. Dans l'exemple ci-dessus nous venons de revenir d'un objet avec unget
fonction qui est passé d'un succès de rappel. Vous pouvez le changer pour passer d'une fonction d'erreur de trop.Modifier Réponse @yair du demande dans les commentaires, voici comment vous injecter un service dans une directive.
4. Directives Module
J'ai suivi le schéma habituel, ajoutez d'abord le fichier js
Alors définir un nouveau module et d'enregistrer des choses, dans ce cas, une directive
Injecter le directive module à la module principal dans
app.js
.Vous pouvez suivre une stratégie différente et injecter un module dans le directives module
Avis que la syntaxe inline dépendance annotation est la même pour presque tout. La directive est injecté les mêmes Livres de service.
Mis À Jour Plunker: http://plnkr.co/edit/mveUM6YJNKIQTbIpJHco?p=preview
Book
de service définis dans le module de services. Le dernier élément du tableau est la fonction où ces services seront injectés. Ce style est appelé inline injection et est utilisé pour faire à votre application de fonctionner lorsque le code est minimisé. AngularJS utilise les paramètres de la fonction de deviner ce que d'injecter, le deuxième argument indique Angulaire de l'injecteur de manière explicite ce qui à injecter.directive
? merci!Voici une implémentation de service au lieu de ci-dessus mentionné service de l'usine. Espérons que cela aide.
app.js
service.js
controller.js