2013-07-26 5 views
1

Je suis une programmation novice essayant de mettre en place une application web avec Angular, node.js, et la base de données graphique neo4j.

Je souhaite charger dynamiquement le contenu de ma base de données en fonction des termes que l'utilisateur sélectionne (ou rejette) (en cliquant sur les boutons). Chaque fois qu'un bouton est cliqué, le terme pertinent est ajouté à un tableau (exclure ou inclure). L'idée est qu'un nouvel appel à la base de données serait fait chaque fois qu'un nouveau terme est sélectionné.

Je suis bloqué en ce moment sur comment faire des appels à la base de données pour récupérer le contenu. J'essaie de regarder les tableaux pour les changements en utilisant $ watch. Quelque chose ne va pas et j'ai des problèmes pour résoudre le problème.

Voici le code du contrôleur:

angular.module('myApp.controllers', []).  
controller('content',function($scope,$http, queryTerms, $watch){ 


    //watch arrays of terms for changes and fetch results based on what is selected 
    $watch(function() { return angular.toJson([ queryTerms.includedTerms, queryTerms.excludedTerms ]) }, 
     function() { 
      $http({ 
       method:'get', 
       url:'/query/getContent', 
       params: {includeTerms:queryTerms.includedTerms , excludeTerms:queryTerms.excludedTerms} 

      }). 
      success(function(data){ 
        //feed content data to display for viewing 

      }). 
      error(function(data){ 
        $scope.test = "Error :(" 

      }); 
     }); 

}); 

Je reçois l'erreur suivante lorsque j'utilise $ montre:

Error: Unknown provider: $watchProvider <- $watch 

Est-ce une façon terrible stupide pour aller à ce sujet en général? Tout conseil serait grandement apprécié - j'apprends en cours de route et jusqu'à présent, les conseils que j'ai reçus ici sont incroyables. Merci!

+1

Le fournisseur $ watch est $ scope. vous n'avez pas besoin de déclarer $ watch en tant que dépendance, seulement $ scope. – hunt

+0

Merci pour la recherche d'informations- Je suppose que c'est dans les docs et que je n'ai pas regardé assez fort. – bornytm

Répondre

5

Utilisez plutôt $scope.$watch.

controller('content', function ($scope, $http, queryTerms) { 
    $scope.$watch(function() { 
     return angular.toJson([queryTerms.includedTerms, queryTerms.excludedTerms]) 
    },... 
+0

Merci beaucoup sza! – bornytm

Questions connexes