我正在使用AngularJs,mongodb和restheart制作数据库网站。
我设计了一个表格,如果我在五个输入区域的任意一个中输入文字,那么带有关键字的数据就会显示出来。
<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。*'},)重复一次。任何人都可以指出我的代码有什么问题吗?