2016-07-29 6 views
1

私は、datatablesを使用して角でテーブルを作成しています。スコープの値を使用しました。この値と受信したデータを比較します。ng-showがdatatablesカラムで動作しない

"columns": [{ data: null, render: function (data, type, row) { 
var roleid =angular.element('#TextkeysController').scope().currentRole; 
return '<p ng-show="'+data.id+' == '+roleid+'" class="btn btn-success btn-xs disabled" value="connected" >connected</p><p ng-show="'+data.id+' != '+roleid+'" class="btn btn-danger btn-xs" value="notConnected" ng-click="connectRole(\''+data.id+'\',\''+data.name+'\')">Not connected</p>'; 
}, name: 'connect', "className":"center"}] 

データをロードすると、両方のボタンが行に表示され、条件はクリック操作をクリックしたときにのみ適用されます。

なぜこのようなことが起こるのか誰かが私に助けてくれますか?

答えて

2

明らかに、angleは、dataTablesによって挿入されたHTMLを認識しません。 #tableIdは、あなたのテーブルのidある

withOption('drawCallback', function() { 
    $scope.$apply($compile(angular.element('#tableId'))($scope)) 
} 

:この例では、私は$compiledrawCallbackでレンダリングされたコンテンツを使用します。しかし、一般的にこれはちょっと混乱しています。 dataTablesの行または列にアタッチされた特定の角度指示文が必要なときは、角度方向にdatatable="ng"を描画します。ゆっくりだが、より清潔で維持しやすい。

+0

withOptionをdatatables javascriptファイルまたはコントローラに追加する必要がありますか? – jValls

+0

ちょっと@jValls私は角度データテーブルを使用していると推測していました(なぜ私は再タグ付けしたのですか) - 上記は角度データテーブルの方法ですが、私はそれを推奨しています。ディレクティブなしでjQuery dataTablesを使用している場合は、[ドキュメンテーションのようにdrawCallback](https://datatables.net/reference/option/drawCallback)を含める必要があります。 – davidkonrad

+0

ng-showを使用せずに条件を直接追加するという問題を解決しました。しかし、あなたの助けに感謝します。 – jValls

関連する問題