我尝试在我的MEANJS应用程序中产生一个querystring。querystring应该包含可以通过ng-click更改的乘法参数。我在尝试为查询补充不同的参数时遇到一些问题,这是我到目前为止所做的。
<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 -->
我为searchSpec函数的两个列表项实现了ng-click。参数(例如“ syllableCount = 2”)应放入控制器文件的querystring中:
$scope.searchSpec = function(attr) {
var result = $http.get('/api/words/?' + attr)
.success(function(result) {
$scope.searchWords = result; // will be used for ng-repeat
console.log($scope.searchWords);
console.log(attr);
});
};
现在,它工作正常,如果我单击某个按钮中的一个,则会建立正确的查询,并且输出(在这种情况下)是一个单词列表,该单词的音节数为1,2,3或4或一个音节结构为einfach (简单)或komplex(复杂)。
我的目标是我可以拥有一个单词列表,比方说syllableCount 2和einfach的syllableStructure(简单)。
我为此尝试的是:
$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 AND struct = einfach),如果我像这样用硬编码输入它:var result = $http.get('/api/words/?syllableCount=' + 2 + '&' + 'syllableStructur=' + einfach)
可以正常工作。
这是正确的方法,还是我在这里错了?
在我看来,您$scope.searchwords
每次http
拨打电话(即每次单击(即调用searchSpec
函数))都会重置该对象。
什么$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);
});
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句