0

我有一个在找到名字时显示 JSON 数据的链接。

 http://localhost:8080/application/names/find?firstname=f_name&LastName&Address&Status= 

例如:如果我用 Tim 替换 f_name,我会得到这个 JSON 响应。

 [{"f_name": "Tim","address": "Road","phone": "1234","status": "busy"}]

如果我用 Sue 替换 f_name,我会得到这个 JSON 响应。

 [{"f_name": "Sue","address": "Street","phone": "4321", "status": "available"}]

我希望能够输入 Tim 或 Sue 并获得相应的数据。这就是我所拥有的。

 $http.get('http://localhost:8080/application/names/find?firstname=f_name&LastName&Address&Status=').
  success(function(data) {
 $scope.jsonData = data;
 alert("Success");
}).
error(function(data) {
alert("Invalid URL");
});


 $scope.results = [];
 $scope.clickButton = function(enteredValue) {

    $scope.items = $scope.jsonData;

    angular.forEach($scope.items, function (item) {
        if(item.f_name === enteredValue){
            $scope.results.push({
                name: enteredValue,
                address: item.address,
                number: item.phone, 
                status: item.status
            });
        }
    })};

jsp

 <table>
        <tr>
            <td><label>Name:</label></td>
            <td>
    <input id="fName" type="text" data-ng-model="enteredValue" /> 
    <button data-ng-click='clickButton(enteredValue)'>Search</button>
            </td>
        </tr>
  </table>


 <table>
 <tr data-ng-repeat="result in results" >
 <td data-title="'ID'" >{{result.name}}</td>
 <td data-title="'Name'">{{result.status}}</td>
 <td data-title="'Status'">{{result.number}}</td>
 <td data-title="'Start Date'" >{{result.date}} </td>
 </tr>
 </table>

我已经能够使用then成功填充下拉列表,如下所示。

 $http.get('http://localhost:8080/application/countries').then(function(cdata) 
        {
$scope.countryData = cdata.data;

})

如何启动此搜索?我这样做对吗?我必须为此提供服务吗?

4

1 回答 1

1

看起来您的服务器端功能已经能够处理查询并返回过滤结果,如果是这种情况,您需要做的只是在发送搜索结果时处理请求 url。所以,你的 clickButton 函数应该是这样的:

        $scope.clickButton = function(enteredValue){
        //you may want to change logic here if you got other parameter need to be handled
        var url = 'http://localhost:8080/application/names/find?firstname='+enteredValue+'&LastName&Address&Status=';
        $http.get(url).success(function(data){
        $scope.results = data;
             });
    }
于 2015-06-19T02:36:32.473 回答