2017-12-14 11 views
0
私は一例で、私の問題を説明してみましょう

角度JS - 配列を含むテーブルの列でフィルタテキスト

htmlコード:

<body> 
    <input type="search" placeholder="filter by line" ng-model="filter.line"> 
    <input type="search" placeholder="filter by area" ng-model="filter.area"> 
    <input type="search" placeholder="filter by text" ng-model="filter.text"> 
    <div> 
    <tbody ng-repeat="document in result.documents | filter:{line:filter.line} |filter:{area:filter.area}"> 
    <tr> 
     <td>{{document.line}}</td> 
     <td>{{document.area}}</td> 
     <td>{{document.sentences}}</td> 
    </tr> 
    </tbody> 

マイデータの例:

$scope.result = { 
documents: { 
      {code:"1", 
      line:"line1", 
      area:"area1", 
      sentences: 
      { 
       {"aaaaa"}, 
       {"bbbb"}, 
       {"ccccc"} 
       } 
      }, 
      {code:"2", 
      line:"line2", 
      area:"area2", 
      sentences: 
       { 
       {"dddd"}, 
       {"eeee"}, 
       {"ffff"} 
       } 
      } 

     }}; 

だから、私は何をしようとしていること欄「sentencにのみフィルタへの入力「filter.text」を使用してフィルタを追加することです「es」。

私はそれを行うことができますどのように

filter:{sentences:filter.text}

よう

何か?

+0

result.documentsが間違っているarray.hereオブジェクトでなければなりません、このデータを試してみてください。.. –

+0

結果オブジェクトは、単なる一例です。私のデータは正しいですが、文章のフィルターがなくてもすべて正常に動作します – Luke

答えて

1

var myApp = angular.module('myApp', []) 
 
       myApp.controller("userCtrl", function ($scope) { 
 
       $scope.filter_t={}; 
 
       $scope.result = { 
 
         documents: 
 
           [{"code":0,"line":"line0","area":"aaa0","sentences":{"id":0}},{"code":1,"line":"line1","area":"aaa1","sentences":{"id":1}},{"code":2,"line":"line2","area":"aaa2","sentences":{"id":2}},{"code":3,"line":"line3","area":"aaa3","sentences":{"id":3}},{"code":4,"line":"line4","area":"aaa4","sentences":{"id":4}},{"code":5,"line":"line5","area":"aaa5","sentences":{"id":5}},{"code":6,"line":"line6","area":"aaa6","sentences":{"id":6}},{"code":7,"line":"line7","area":"aaa7","sentences":{"id":7}},{"code":8,"line":"line8","area":"aaa8","sentences":{"id":8}},{"code":9,"line":"line9","area":"aaa9","sentences":{"id":9}}] 
 
       } 
 

 
    })
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp"> 
 
    <div ng-controller="userCtrl"> 
 

 
     <input type="search" placeholder="filter by line" ng-model="filter_t.line"> 
 
    <input type="search" placeholder="filter by area" ng-model="filter_t.area"> 
 
    <input type="search" placeholder="filter by sentences inside id based" ng-model="filter_t.sentences.id"> 
 
    <div> 
 
<table border='1'> 
 
    <tbody ng-repeat="document in result.documents | filter:filter_t"> 
 
    <tr> 
 
     <td>{{document.line}}</td> 
 
     <td>{{document.area}}</td> 
 
     <td>{{document.sentences.id}}</td> 
 
    </tr> 
 
    </tbody> 
 
</table> 
 
</div>

+0

私の場合、私は文の中のすべてのオブジェクトをフィルタリングする必要があります。そのうちの1つだけではありません:/ – Luke

+0

すばらしき私の友人。ありがとうございました。私はあなたの例で解決策を見つけることができました – Luke

0

$scope.result = { 
documents: { 
       {code:"1", 
       line:"line1", 
       area:"area1", 
       sentences: 
       { 
        {"aaaaa"}, 
        {"bbbb"}, 
        {"ccccc"} 
        } 
       }, 
       {code:"2", 
       line:"line2", 
       area:"area2", 
       sentences: 
        { 
        {"dddd"}, 
        {"eeee"}, 
        {"ffff"} 
        } 
       } 

      } 
}; 
+1

おそらく私は間違った方法で私のデータの例を書いていますが、私の問題はありません。データはOKです – Luke

関連する問題