Javascript angularjs中的多参数查询字符串
我试图在MEANJS应用程序中生成一个查询字符串。querystring应该包含可以通过单击更改的多个参数。我在尝试为查询指定不同的参数时遇到了一些问题,以下是我到目前为止所做的工作Javascript angularjs中的多参数查询字符串,javascript,angularjs,meanjs,Javascript,Angularjs,Meanjs,我试图在MEANJS应用程序中生成一个查询字符串。querystring应该包含可以通过单击更改的多个参数。我在尝试为查询指定不同的参数时遇到了一些问题,以下是我到目前为止所做的工作 <md-list layout="column" layout-align="center" flex="100" ng-cloak> <!-- syllableCount --> <md-list-item> <label flex="20"&g
<md-list layout="column" layout-align="center" flex="100" ng-cloak>
<!-- syllableCount -->
<md-list-item>
<label flex="20">Silbenanzahl</label>
<md-button type="button" class="btn btn-sm min-width-45"
ng-click="searchSpec('syllableCount=1')">1
</md-button>
<md-button type="button" class="btn btn-sm min-width-45"
ng-click="searchSpec('syllableCount=2')">2
</md-button>
<md-button type="button" class="btn btn-sm min-width-45"
ng-click="searchSpec('syllableCount=3')">3
</md-button>
<md-button type="button" class="btn btn-sm min-width-45"
ng-click="searchSpec('syllableCount=4')">4
</md-button>
<md-divider ng-if="!$last"></md-divider>
</md-list-item>
<!-- end -->
<!-- syllableStructur -->
<md-list-item>
<label flex="20">Silbenstruktur</label>
<md-button type="button" class="btn btn-sm min-width-45"
ng-click="searchSpec('syllableStructur=einfach')">einfach
</md-button>
<md-button type="button" class="btn btn-sm min-width-45"
ng-click="searchSpec('syllableStructur=komplex')">komplex
</md-button>
<md-divider ng-if="!$last"></md-divider>
</md-list-item>
<!-- end -->
现在,它可以正常工作,如果我单击其中一个按钮,正确的查询就会建立起来,输出是(在本例中)音节计数为1、2、3或4或音节结构为einfach(简单)或komplex(复杂)的单词列表
我的目标是,我可以有一个单词列表,比如说音节计数2和一个einfach(easy)的音节结构
我试着这样做:
$scope.searchCount = function(attr) {
$scope.count = attr;
};
$scope.searchStruct = function(attr) {
$scope.struct = attr;
};
$scope.searchSpec = function(attr) {
var result = $http.get('/api/words/?syllableCount=' + $scope.count + '&' + 'syllableStructur=' + $scope.struct)
.success(function(result) {
$scope.searchWords = result;
console.log($scope.searchWords);
console.log(attr);
});
};
这两个新函数在html中通过按钮被调用,我尝试将结果合并为字符串。然而,它没有起作用。如果我像这样硬编码输入它,它不会显示结果(count=2和struct=einfach):var result=$http.get('/api/words/?音节计数='+2+'&'+'音节结构='+einfach)
它工作正常
这是正确的方法,还是我错了?在我看来,每次调用
http
时,即每次单击(searchSpec
函数被调用),您都在重置$scope.searchwords
对象
什么是$scope.searchWords
?如果你想继续依靠点击向其中添加数据,你最好制作一个数组并推送到它,即
$scope.searchSpec = function(attr) {
var result = $http.get('/api/words/?syllableCount=' + $scope.count + '&' + 'syllableStructur=' + $scope.struct)
.success(function(result) {
$scope.searchWords.push(result.data);
});
};
只要确保每次得到结果时不要重新分配$scope.whatever对象
$scope.searchSpec = function(attr) {
var result = $http.get('/api/words/?syllableCount=' + $scope.count + '&' + 'syllableStructur=' + $scope.struct)
.success(function(result) {
$scope[attr].push(result.data);
});
};
我明白我的错误了。我只是将点击的结果保存到searchWord,然后在上面使用ng repeat,但是因为我没有在这里使用数组,所以它不起作用。谢谢,我将尝试使用一个数组。因此,现在它是一个数组,并且添加了数据,但到目前为止,它将整个数组推送到searchWord[]。如何获得正确的数据?我这样试过:
$scope.searchWords.push({grapheme:result.grapheme})
这是我的ng repeat:data ng repeat=“word in searchWords
我将其与
一起使用更新:其工作正常,justet需要使用ng repeate与数组数组数组一起使用,如此处所示thx提供帮助真棒:-)希望我能帮上忙
$scope.searchSpec = function(attr) {
var result = $http.get('/api/words/?syllableCount=' + $scope.count + '&' + 'syllableStructur=' + $scope.struct)
.success(function(result) {
$scope[attr].push(result.data);
});
};