AngularJS: Création d'Objets que la carte de REPOS Ressources (ORM-Style)
Je suis assez nouveau à AngularJS, mais je suis pas clair sur la façon de l'attacher à mon Serveur REST Api backend.
Par exemple, dire que j'ai une "image" des ressources que je reçois par GET-ing: myApi/image/1/. Cette propriété renvoie un objet json avec les différents champs. Disons quelque chose comme:
{url: "some/url", date_created: 1235845}
Maintenant, je veux une certaine forme de représentation dans mon AngularJS application de cette "Image" de l'objet. Cette représentation est plus que juste une cartographie des champs - j'ai envie d'ajouter "l'aide" des fonctions, par exemple une fonction qui convertit les date_create
champ en quelque chose de lisible par l'homme.
Je sais que sur le $service de ressources, mais je suis pas clair ce que je dois faire pour créer une base de "classe" dans Angulaire, qui utilise des Ressources pour obtenir l'objet JSON, mais ensuite, il améliore en ajoutant diverses fonctions d'assistance.
Points Bonus:
Je suis également difficile de savoir comment ajouter des "relations" entre les modèles. Par exemple, je pourrais avoir un "utilisateur" de la ressource qui a incorporé à l'intérieur d'une "image" de la ressource, et je vais vous le souhaitez extraire les ressources de l'Utilisateur, mais être en mesure d'appeler "l'Image" des fonctions d'assistance sur "l'Image" du modèle.
- Cela sonne comme vous voulez une sorte de angulaire modèle soutenu par la cadre de. Autant que je sache, il n'y a rien de tel dans angulaire intégré.
- Je suis à la recherche de même juste apprendre les meilleures pratiques, de la façon d'aller sur la construction de mon propre. Devrais-je en la recouvrant d'une "Ressource" de l'objet avec un service et ajouter des méthodes à qui? La synthèse d'une "ressource" de l'objet avec un service distinct? etc.
Vous devez vous connecter pour publier un commentaire.
JSData
Un projet qui a commencé comme angulaires-données est désormais "un cadre indépendant du magasin de données construite pour la facilité d'utilisation et la paix de l'esprit."
Il a une excellente documentation et a un support pour les relations, de multiples serveurs (http, localStorage, firebase), de validation et de cours angulaire de l'intégration.
http://www.js-data.io/
BreezeJS
Le AngularJS chaîne YouTube caractéristiques cette vidéo à l'aide de BreezeJS
Qui est une avancée ORM qui prend même en charge le filtrage côté client et d'autres trucs cool.
Il le mieux adapté pour le backend qui prennent en charge OData, mais peut être faite à travailler sur d'autres types de backends.
ngResource
Une autre option est d'utiliser le ngResource, voici un exemple sur la façon de prolonger avec vos propres fonctions:
J'ai trouvé ngResource être très limité, même par rapport à de la colonne vertébrale.Modèle qui a:
Restangular
"AngularJS service pour gérer les Rest API Restful Ressources facilement et correctement"
http://ngmodules.org/modules/restangular
Ou essayer quelques-uns des autres ORM est
Quelles sont les options disponibles pour JavaScript côté client ORM?
Je suis créateur de Restangular donc mon avis peut être biaisée.
Mais comme Bob l'a dit, vous pouvez utiliser Restangular pour elle.
Restangular utilise votre API Restful Ressources pour aller au-dessus de l'arbre. Vous pouvez également ajouter de nouvelles méthodes pour cela.
C'est l'exemple de codification: https://github.com/mgonto/restangular#lets-code
Et de cette façon vous pouvez ajouter de nouvelles méthodes à votre objet (Les points bonus :)) https://github.com/mgonto/restangular#creating-new-restangular-methods
Espère que cela fonctionne pour vous :).
Sinon, vous pouvez également utiliser ngResource ($ressource) pour cela, mais à mon avis, elle a besoin d'une "amour" et "sucre".
Records
Pour la simple interaction, vous pouvez utiliser Angulaires-Ressource (http://docs.angularjs.org/api/ngResource.$de ressources) qui peut être assez pratique pour le REPOS simple interaction (pour le télécharger aller à http://code.angularjs.org/1.0.6/)
Malheureusement, vous obtenez seulement un contrôle limité lors de l'utilisation angulaire de ressources, et pour quelque chose de plus avancé, vous aurez besoin pour créer vos propres services basés sur Angularjs $service http - http://docs.angularjs.org/api/ng.$http.
Espère que ça aide.
Après beaucoup de recherches, voici une liste exhaustive de toutes les solutions disponibles:
Restmod
Modelizer
ModelCore
angulaire-montre-des ressources
angulaire-sommeil
ngResource
angularjs-rails-ressources
angulaires-nested-ressources
Aar.js
Angulaire Activerecord
Angulaire De Données
ngActiveResource
restangular
BreezeJS
ng-dorsale
mais honnêtement, je n'étais pas très heureux, j'ai donc décidé de l'ajouter à la liste de ma propre solution haha. Découvrez-le ici: $modelFactory.
Votre résultat de fin de code se termine à la recherche de quelque chose comme:
Je crois que c'est une meilleure solution sur le reste, à cause notamment de la définition d'un modèle ressemble Angulaire du
ngResource
, l'ajout de bas niveau fonctionnalités on a besoin qu'il lui manque. Son poids super-légers (1.45 k gzip/min) et n'a que quelques petites dépendances ( pas de lodash, jquery, etc ).ModelCore ( https://github.com/klederson/ModelCore ) fonctionne très bien comme cela, et c'est très très facile à mettre en œuvre:
Angulaire Reste-Mod est une autre bonne option pour Angulaires à base de Modèles /ORM.
Restmod crée des objets que vous pouvez utiliser à partir de l'intérieur Angulaire d'interagir avec votre API RESTful. Il prend également en charge les collections, les relations, le cycle de vie des crochets, attribut de renommer et beaucoup plus.
Un exemple de plus de l'aide pour ngResource. Cela repose sur le fait que la grande majorité des services est quelque chose comme ça:
Donc, la tâche consiste à faire un helper qui créent AngularJS objets de ressource que cartes à de tels services. Ici, il est:
Donc, pour l'utiliser simplement appeler cette fonction d'aide
Et puis vous pouvez utiliser la Poste et PostComment dans le code nécessaire params comme :post_id