用angular过滤$ http json数据

时间:2017-10-23 10:26:38

标签: javascript angularjs json

我已经在这里阅读了很多问题,但有些事情并没有点击我并理解我的这个问题。

js代码:

    app.controller('example_ctrl',['$scope','$http', function($scope, 
    $http){
    $http.get('api_call_here').then(function successCallBack(response){
    $scope.response = response;
    });

api的Json格式:

    {
      "categoryOne": {
        "1": {
          "title": "someData1",
          "description": "This is number One"
        },
        "2": {
          "title": "moreData1",
          "description": "I am not a number, I'm a free man!"
        }
      }
    }

现在因为没有在数组中返回,每当我尝试过滤它时都会收到错误。举个例子:

    <div ng-repeat="(category, object) in response.data">
       <div ng-repeat="item in object">
         <p>{{item.title}}</p>
       </div>
    </div>

现在,如果我尝试将ng-model放在搜索输入上,并使用| filter:ng-model名称将其绑定到ng-repeat,我会收到错误。

我基本上想要做的是,当你在搜索字段中键入文本时,让它只返回包含该文本的标题/描述。

1 个答案:

答案 0 :(得分:0)

您可以将每个类别中的对象列表转换为数组:

app.controller('example_ctrl',['$scope','$http', function($scope, $http){
    $http.get('api_call_here').then(function(response) {    
        Object.keys(response.data).forEach(function(category) {
        response.data[category] = Object.values(response.data[category]); // Transfom list of objects in each category to array
    });
    console.log("transformed: ", response);
    $scope.response = response;	
});