2016-05-28 10 views
0

私は、角度から動くCRUDアプリを持っています。最近、データテーブルの力を使ってカラムを検索、フィルタリング、ソート、エクスポート、非表示にするために、データテーブルを追加しました。残念なことに、検索のようなデータテーブル機能を使用するとFirebaseの参照がフィールドの代わりに返されます。{{contact.name}}{{contact.email}}(さらに4つの列があります)。これを修正する方法はありますか? Firebaseを使用すると同時に、それらのデータ化可能な機能が本当に必要です。Datatables検索、フィルタリング、およびFirebaseを使用したエクスポート

$(document).ready(function() { 
 
    $('#contacts').DataTable({ 
 
     dom: 'Bfrtip', 
 
     buttons: [ 
 
      'copyHtml5', 
 
      'excelHtml5', 
 
      'csvHtml5', 
 
      'pdfHtml5' 
 
     ] 
 
    }); 
 
});
<table id="contacts" class="table table-striped table-hover" > 
 
    <thead> 
 
    <tr> 
 
     <th>Name</th> 
 
     <th>Phone</th> 
 
     <th>Area</th> 
 
     <th>Occupation</th> 
 
     <th>E-mail</th> 
 
\t <th> Actions </th> 
 
    </tr> 
 
    </thead> 
 
    <tbody> 
 
    <tr ng-repeat="contact in contacts"> 
 
     <td>{{contact.name}}</td> 
 
     <td>{{contact.phone}}</td> 
 
     <td>{{contact.area}}</td> 
 
     <td>{{contact.work}}</td> 
 
     <td>{{contact.email}}</td> 
 
     <td><a href="#/edit/{{contact.$id}}" class="btn btn-raised btn-xs btn-warning">Edit</a> <a class="btn btn-raised btn-xs btn-danger" ng-click="removeContact(contact.$id)">Delete</a></td> 
 

 
    </tr> 
 
    </tbody> 
 
</table>

EDIT

は、Ajaxのソートを経由して、このデータをアウトソーシングます。これは私がAjaxのGETリクエスト

{"-KIZ6VnucsKbKjlaE8aq":{"area":"Parklands","email":"tttt","name":"Mohammed Sohail","phone":"+254711777734","work":"ttt"},"-KId6OC2gOwiacUid9yK":{"area":"dfgdfg","email":"dfgdf","name":"dfg","phone":"dfgdfg","work":"fdfffffff"},"-KId6Rqo0B6w0jACHhWM":{"area":"dfgdfgdfgdf","email":"dfgdfgdfgdfg","name":"dfgfdgdf","phone":"gdfgdfgdfg","work":"gdfgdfgdfgdfg"},"-KIqmYZubPYhAqDqEyWo":{"area":"dfgfdg","email":"fgfdgfdgdf","name":"fgfg","phone":"fdgdg","work":"fgdfgdf"},"-KIqn5QABMXrTGoVgQv1":{"area":"bla","email":"weadasda","name":"bla","phone":"bla","work":"bla"}}

から取得し、JSON形式であり、データがコンソール上どのように見えるか、これはです。

データテーブルを使用するための助けがあれば、どんな助けもあります。

FireBase database image

+0

<table datatable="ng" class="table table-striped table-hover" > 

デモ:angular-datatables(jQueryのDataTableのための角度指令)にこれを有効にするにはあなたがする必要がある唯一のものはdatatables依存関係を含めるとマークアップでdatatableディレクティブを含めることです質問内に関連コードを投稿してください。あなたのコードを見つけるためにrepoを突き抜ける必要はありません。質問は自己完結型でなければならないので、サイトを離れて問題をレビューする必要はありません。また、問題のステートメントは全く明確ではありません。適切なコンテキストと期待された結果がないことを意味します* [ask] – charlietfl

+1

Okはそれを編集します。私は電話からそれを使用しています。 –

+0

質問をどのように入力/編集するかは関係ありません。問題はサイトのガイドラインに準拠していることと問題がはっきりしており、問題には問題コードを含むすべての関連情報が含まれていることです – charlietfl

答えて

0

ので、この質問は本当にのDataTableとng-repeatと一緒に使用することができ、より平易な構造になKId6Rqo0B6w0jACHhWMなど未知のオブジェクトのエントリ名を持つオブジェクトの(firebase)JSONオブジェクトを回す程度ですか?

$http.get('firebase.json').then(function(json) { //faked response from firebase 
    $scope.contacts = [] 
    for (var item in json.data) { 
    $scope.contacts.push(json.data[item]) 
    } 
}) 

今すぐng-repeatがうまくいくとマークアップ(またはcontactsデータ)のDataTableのために理解しやすいです:

あなたはプレーンなオブジェクトの配列には、この方法をcontactsをフォーマットすることができます。 - >http://plnkr.co/edit/tn9cuKa46vs4x8cHebjB?p=preview

+0

が完璧に機能します。私はブートストラップのスタイリングをボタンではなく得ることができますが、ドキュメンテーションは少しオフです。本当に素早くplnkrに追加ボタンを表示することができますか?私は本当に感謝します。 –

+0

私はちょうどすべてを簡素化したいと思います。任意のヒント? –

+0

@MohammedSohail - 基本的にdocs-> https://l-lin.github.io/angular-datatables/#/withButtonsと同じことをしますが、 'jszip'と' pdfmake'を含まなければなりません。また 'jszip'はMUST 2.6.0以下でなければなりません。つまり、 'bower install jszip#2.6.0 --save'です。 – davidkonrad

関連する問題