У меня есть блок if-else, который анализирует ввод пользователя перед тем, как сделать http.get() на сервере. Однако if-else продолжает пропущен. Я попытался переставить код, чтобы заставить его завершить if-else перед вызовом get(), но ничего не работает. Я также использую AngularJS.Javascript async пропускает if-else
//controller
function search($scope, $http, $location)
{
function parse(item)
{
if(item.match(/str1/g))
{
item = item.replace(/str1/g, 'one');
}
else if(item.match(/str2/g))
{
item = item.replace(/str2/g, 'two');
}
else if(item.match(/str3/g))
{
item = item.replace(/str3/g, 'three');
}
//ad infinitum
return item;
}
$http.get('/search='+ parse($location.search().query.toLowerCase()))
.success(function(data) {
$scope.count = data.length;
$scope.items = data;
$scope.exists = data.length > 0;
})
.error(function(err) {
});
}
Я думаю, вам нужно узнать о ['return' statements] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return). –