2

我是一名编程新手,试图将一个 Web 应用程序与 Angular、node.js 和图形数据库 neo4j 组合在一起。

我想根据用户选择(或拒绝)术语(单击按钮)从我的数据库中动态加载内容。每次单击按钮时,相关术语都会添加到数组中(排除或包含)。这个想法是每次选择一个新术语时都会对数据库进行一次新调用。

我现在不知道如何调用数据库来检索内容。我正在尝试使用 $watch 观察数组的变化。出了点问题,我在解决问题时遇到了问题。

这是控制器代码:

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 :("

            });
        });

});

使用 $watch 时出现以下错误:

Error: Unknown provider: $watchProvider <- $watch

一般来说,这是一种可怕的愚蠢方式吗?任何建议将不胜感激 - 我正在学习,到目前为止,我在这里得到的建议非常棒。谢谢!

4

1 回答 1

6

改为使用$scope.$watch

controller('content', function ($scope, $http, queryTerms) {
    $scope.$watch(function () {
        return angular.toJson([queryTerms.includedTerms, queryTerms.excludedTerms])
    },...
于 2013-07-26T04:51:42.720 回答