ng-repeatを使用してテーブルにデータを格納する配列があります。私は、特定の変数columnFilter
の値に基づいて配列をフィルタリングするフィルタをコントローラに適用しています。今、私はその変数を変更すると私のテーブルビューは更新されていません。つまり、変数が変更されると、フィルタは再適用されません。 | filter: expression
構文を使用する方法を伝えるすべての答えにコントローラでフィルタを使用する場合、ng-repeat配列を更新します。
JS
var myApp = angular.module('myApp',[]);
function MyCtrl($scope, $filter) {
$scope.name = 'Superhero';
$scope.col={name:""};
$scope.TableData = [{
name: "2017/03/01-14",
specification: "1wk",
},
{
name: "2017/03/01-17",
specification: "Set-04",
},
{
name: "2017/03/04-11",
specification: "1wk",
},
{
name: "2017/04/01-14",
specification: "1wk",
},
{
name: "2017/03/10-10",
specification: "Set-04",
},
{
name: "2017/03/10-10",
specification: "Set-04",
}
$scope.TableDataFiltered = $filter('filter')($scope.TableData, $scope.col);
}
HTML
<div ng-controller="MyCtrl">
<input type="text" ng-model="col.name">
<table>
<thead>
<tr>
<th>name</th>
<th>spec</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in TableDataFiltered">
<td>{{item.name}}</td>
<td>{{item.specification}}</td>
</tr>
</tbody>
</table>
</div>
、私はそれについて知っているが、実際のアプリは他のフィルタを持っていますコントローラ自体をフィルタリングする必要があります。 (私はそれが私の上だが、その点は非常に明確にしない最小限の例を提供していない)
_ "フィルタは再適用していません" _手動でフィルタすることを選択したので、必要なときにフィルタを自分で適用する必要があります。あなたは '$ scope。$ watch()'はうまくいきませんでした。なにが問題だったの? – zeroflagL
@zeroflagL問題はありませんでした。何もしませんでした。フィルタが更新されると、私のテーブルは更新されません。私はそれが更新されているかどうかを確認するために、フィルタ変数の出力をチェックしています。問題は、何らかの理由でng-repeatがリフレッシュしていないことです。 – ChaoticTwist