У меня есть небольшая страница Angular JS. Там есть форма поиска. Когда я нажимаю кнопку, я выполняю поиск, загружая данные JSON из URL.

Мой вопрос заключается в том, как правильно изменить строку URL, чтобы включить значение в форму?

Моя неудачная попытка включена, вы можете видеть, что я делаю +searchCriteria+, что явно неправильно ...

Любая помощь приветствуется!

<div ng-app="myApp" ng-controller="customersCtrl"> 

    Search Field: <input type="text" ng-model="searchCriteria">
    <button ng-click="myFunction()">Search</button>

[ ... ]

</div>

[ ... ]

<script>
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
    $scope.myFunction = function() {
        var url = 'http://localhost:8984/solr/carlistings1/select?indent=on&q=make:' + searchCriteria + '&wt=json';
        alert("url="+url);
        $http.get(url)
            .then(function (response) {$scope.names = response.data.response.docs;});
    }
});
</script>
1
user550738 13 Дек 2016 в 07:26

3 ответа

Лучший ответ

Вам нужно сослаться на $scope:

var url = 'http://localhost:8984/solr/carlistings1/select?indent=on&q=make:' + $scope.searchCriteria + '&wt=json';
2
Lex 13 Дек 2016 в 04:31

Используйте encodeURIComponent

var url = 'http://localhost:8984/solr/carlistings1/select?indent=on&q=make:' + encodeURIComponent(searchCriteria) + '&wt=json';
0
Azad 13 Дек 2016 в 04:34
var url = 'http://localhost:8984/solr/carlistings1/select?indent=on&q=make:' + $scope.searchCriteria + '&wt=json';
0
Shekhar Tyagi 13 Дек 2016 в 04:36