2017-02-28 4 views
0

私はngTableの公式ページで最初のヘルプを見つけることを試みますが、結果はありません。アレイデータを持つngTableフィルター列

私は、オブジェクトの私の配列を使用してデータテーブルを埋めたい(以下の例を参照) (コラム「名前」と「発言」に)テキストまたは番号で並べ替えとフィルタするrealyl簡単です しかし、私はしたいですまた、ユーザーオブジェクトの配列であるデータ「ユーザー」の1つの列を表示します。私のテーブルは、すべてのユーザーを1つの列に追加してデータを表示しています。 しかし、今は配列のこれらのデータ列をソートまたはフィルタリングできません。

多分私はフィルタオプションでカスタムフィルタを追加する必要がありますが、これを可能にする方法は今考えています。

コントローラのngTableParamsに "users:"のフィルタをプリセットすることもできます(フィルタ:{'users': 'A'} '(1人または複数のユーザー。FIRSTNAME = "A" は、ユーザーリストであると

希望誰かがこの上で私を助けることができる Thxを、ヨルゲン

DATA:。

this.data = [{ 
    name: 'Test A', 
    remark: 'test A', 
    users: [ 
    {_id: 1234, firstname: 'A', lastname: 'B'}, 
    {_id: 2345, firstname: 'B', lastname: 'C'}, 
    {_id: 3456, firstname: 'C', lastname: 'D'}, 
    {_id: 4567, firstname: 'D', lastname: 'E'}, 
    ] 
}, 
{ 
    name: 'Test B', 
    remark: 'test B', 
    users: [ 
    {_id: 1234, firstname: 'A', lastname: 'B'}, 
    {_id: 5678, firstname: 'E', lastname: 'F'}, 
    {_id: 3456, firstname: 'C', lastname: 'D'}, 
    ] 
}, 
{ 
    name: 'Test C', 
    remark: 'test C', 
    users: [ 
    {_id: 5678, firstname: 'E', lastname: 'F'} 
    ] 
}]; 

はHTML:

CONTROLLER:

this.tableParams = new ngTableParams({ 
    sorting: {name: 'asc'} 
}, 
{ 
    data: this.data 
}); 

https://embed.plnkr.co/7sGrv7IpUzCXDN1USeyX/

答えて

0

あなたはコントローラーでそれをしたい場合:

angular.forEach(this.data, function (obj, idx) { 
    obj.filterOnUsers = []; 
    obj.filterOnUsers = $filter('filter')(obj.users, { firstname: obj.name }); 
}); 

チェックはこのAngular Filter Doc

+0

は、高速応答をいただき、ありがとうございます。 私はngTable技術を使用して解決策を探しています。 これは、データテーブルのページングが間違っている可能性があるため、以前は配列を変更したくないです。 多分それは[カスタムフィルター](http://ng-table.com/#/filtering/demo-customize-algorithm)を使用する方法ですが、私はどのように配列のエントリのために考えていない... – Jorgen

関連する問題