使用forEach循环时重复查询字符串值(javascript)

时间:2016-01-08 17:10:51

标签: javascript angularjs

我正在使用AngularJs,mongodb和restheart制作数据库网站。

enter image description here

我设计了一个表格,如果我在五个输入区域的任意一个中输入文字,那么带有关键字的数据就会显示出来。

 <input types="text" ng-model="query.uniport_AC" ng-change="change()">
 ......
 <input types="text" ng-model="query.site" ng-change="change()">

在javascript中,我的代码是

$scope.change = function(){
        var url = "";
        angular.forEach($scope.query, function(value, key) {
            if(!angular.isUndefined(value)){
                    url = url + "'"+key+"':{'$regex':'(?i)"+value+".*'},";
                    };      
            test = "http...&filter={" +url+ "}";
            $http.get(test+"}").then(
                        function(res){
                            $scope.db = res.data._embedded["rh:doc"];
                            $scope.pages = res.data._total_pages;
                            $scope.sizes = res.data._size;
                            console.log(res);           
                            },
                        function(err){
                            console.log(err);
                        }   
                    );

我的问题是,假设我分别在前2个输入区输入 a g ,我希望创建一个这样的字符串

http...filter={'uniprot_AC':{'$regex':'(?i)a.*'},'gene_name':{'$regex':'(?i)g.*'},

但是,我得到一个像这样的字符串

http...filter={'uniprot_AC':{'$regex':'(?i)a.*'},'uniprot_AC':{'$regex':'(?i)a.*'},'gene_name':{'$regex':'(?i)g.*'},'gene_name':{'$regex':'(?i)g.*'},

url(假设'uniprot_AC':{'$ regex':'(?i)a。*'},)重复一次。任何人都可以指出我的代码有什么问题吗?

0 个答案:

没有答案