Я пытаюсь создать запрос в моем приложении MEANJS. В строке запроса должны храниться несколько параметров, которые можно изменить с помощью ng-click. Я сталкиваюсь с некоторыми проблемами, поскольку я пытаюсь конкатенировать различные параметры запроса, вот что я сделал до сих пор.Querystring с несколькими параметрами в angularjs
<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 -->
Я реализовал ng-click для двух списков для функции searchSpec. Параметры (например, «syllableCount = 2») должны перейти в строку запроса в файле контроллер:
$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);
});
};
На данный момент он работает нормально, если я нажимаю некоторые одну из кнопок права запроса получает строить вверх, а вывод (в этом случае) список слов с syllableCount 1,2,3 или 4 OR с syllableStructure einfach (простой) OR komplex (complex).
Моя цель в том, что я могу иметь список слов с, скажем, syllableCount 2 И syllableStructure einfach (легко).
, что я пытался для этого был такой:
$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 с помощью кнопок и я стараюсь concatinate результатов в виде строки. Однако это не сработало. Он не показывал результаты (count = 2 AND struct = einfach). Если я напечатаю его в hardcoded следующим образом: var result = $http.get('/api/words/?syllableCount=' + 2 + '&' + 'syllableStructur=' + einfach)
работает отлично.
Это правильный способ сделать это, или я здесь не так?
Я вижу свою ошибку здесь. Я просто сохраняю результаты кликов в searchWord и не использую ng-repeat на нем, но поскольку я не использую массив здесь, он не работает. Спасибо, я попробую с массивом. – d8ta
Итак, теперь его массив и данные добавляются, но до сих пор он выталкивает целый массив в searchWord []. Как получить правильные данные? Я пробовал это следующим образом: '$ scope.searchWords.push ({ grapheme: result.grapheme });' – d8ta
Вот мое слово ng-repeat: 'data-ng-repeat =" в searchWords', и я его использую с '
' – d8ta