2014-06-12 4 views
1

Utilisation de parse.com et de JavaScript SDK.Création de relations dans parse.com avec plusieurs classes (JavaScript SDK)

J'ai lu beaucoup de choses à ce sujet, mais je ne trouve pas d'exemples qui correspondent à mon problème que j'essaie de résoudre.

Voici ce que je tente d'atteindre.

Je souhaite que la classe "FriendRequest" ait une relation un à plusieurs avec "myBadges". Les objets enfants contenus dans "myBadges" augmenteront au fil du temps.

Les objets enfants sont générés par une fonction qui s'exécute lorsque l'utilisateur sélectionne un badge et utilise "Oui, faites-le maintenant!" pour le stocker dans "myBadges". À l'heure actuelle, je peux seulement sembler créer une relation dans la classe active que la fonction utilise. Cela signifie que j'ai une relation configurée dans "myBadges" qui pointe juste vers la classe User, pas vers la classe "FriendRequest".

La relation est dans cette partie du Code

   success: function(results) { 
         // The object was saved successfully. 
         userbadges.relation('BadgeConnect').add(userbadges); 
         userbadges.save(); 

Le problème que je suis en train de résoudre est de déplacer le lien de la relation de la classe « myBadges » à la classe « amiDemander » ???

Un exemple de réponse à la question de savoir comment y parvenir serait utile pour m'aider à apprendre la bonne approche.

CODE COMPLET.

<script type="text/javascript"> 
     Parse.initialize("xxxx", "xxxxx"); 
     var MyBadges = Parse.Object.extend("myBadges"); 
     var friendRequest = Parse.Object.extend("FriendRequest"); 

     var userbadges = new MyBadges(); 
     var friendRequest = new friendRequest(); 
     var user = Parse.User.current(); 


     $(document).ready(function() { 

      $("#send").click(function() { 

       var badgeselected = $('#badgeselect .go').attr("src"); 
       userbadges.set("BadgeName", badgeselected); 
       userbadges.set("uploadedBy", user); 
       //userbadges.set('BadgeName'); 
       //userbadges.save(); 

       userbadges.save(null, { 
        success: function(results) { 
         // The object was saved successfully. 
         userbadges.relation('BadgeConnect').add(userbadges); 
         userbadges.save(); 
         //location.reload(); 
        }, 
        error: function(contact, error) { 
         // The save failed. 
         // error is a Parse.Error with an error code and description. 
         alert("Error: " + error.code + " " + error.message); 
        } 
       }); 
      }); 
     }); 

Répondre

2

Comme la plupart des problèmes, il existe plusieurs façons de le résoudre.

Si votre objectif est d'être en mesure d'interroger cette relation de chaque côté je vois deux options principales:

  • Créer une fonction Cloud après sauvegarde de votre classe myBadges qui crée un double de la relation du côté FriendRequest. Je ne suis pas sûr du soutien qu'il y a pour cela, car je ne l'ai jamais essayé.
  • Créez votre propre classe de relations, par ex. myBadges_FriendRequest, à l'intérieur ont un pointeur vers chacune des autres classes, plus tout ce que vous voulez savoir à propos de cette relation

Personnellement, je recommande la 2ème option. Pour interroger vous pouvez facilement demander des informations basées sur l'un ou l'autre côté de la relation et utiliser include() pour remplir les deux pointeurs dans le résultat selon les besoins.

Questions connexes