(wrapbootstrap.com/theme/smartadmin-responsive-webapp-WB0573SK0) から smartadmin を購入し、バージョン 1.5 の angular を使用しています。
データテーブル (wrapbootstrap.com/preview/WB0573SK0) を抽出し、自分のプロジェクトに入れました。これまでのところ、行をクリックしてサブ要素が開いた場合を除いて機能しますが、そこにあるデータはバインドされていません。
Angular Chrome プラグインでスコープを確認すると、あなたのバージョンと私のプロジェクトで、スコープに実際のデータがあるが、どういうわけか ng-bing が機能していないことがわかります。(スクリーンショットでわかるように)
私のプロジェクト - 空のサブエレメント http://s14.directupload.net/images/141120/f9xzm3ab.png
http://fs1.directupload.net/images/141120/2pp3icxa.pngのようになるはずです
景色:
<caption class="smart-datatable-child-format" data-child-control="td.details-control">
<table cellpadding="5" cellspacing="0" border="0"
class="table table-hover table-condensed">
<tr>
<td style="width:100px">Project Title:</td>
<td ng-bind-html="d.name"></td>
</tr>
<tr>
<td>Deadline:</td>
<td ng-bind-html="d.ends"></td>
</tr>
<tr>
<td>Extra info:</td>
<td>And any further details here (images etc)...</td>
</tr>
<tr>
<td>Comments:</td>
<td ng-bind-html="d.comments"></td>
</tr>
<tr>
<td>Action:</td>
<td ng-bind-html="d.action"></td>
</tr>
</table>
</caption>
コントローラ:
$scope.projects = [
{
"name": "name",
"est": "est",
"contacts": "contacts",
"status": "status",
"target-actual": "target-actual",
"actual": "actual",
"tracker": "tracker",
"starts": "01-21-2013",
"ends": "<strong>03-15-2015</strong>",
"comments": "comments",
"action": "actions"
}];
$scope.tableOptions = {
"data": $scope.projects,
"iDisplayLength": 15,
"columns": [
{
"class": 'details-control',
"orderable": false,
"data": null,
"defaultContent": ''
},
{"data": "name"},
{"data": "est"},
{"data": "contacts"},
{"data": "status"},
{"data": "target-actual"},
{"data": "starts"},
{"data": "ends"},
{"data": "tracker"}
],
"order": [[1, 'asc']]};
ディレクティブ: (クリック ハンドラで)
if (attributes.tableOptions) {
console.log("extending angular tableOptions");
options = angular.extend(options, scope.tableOptions)
}
var _dataTable;
var childFormat = element.find('.smart-datatable-child-format');
if (childFormat.length) {
var childFormatTemplate = childFormat.remove().html();
element.on('click', childFormat.data('childControl'), function () {
var tr = $(this).closest('tr');
var row = _dataTable.row(tr);
if (row.child.isShown()) {
// This row is already open - close it
row.child.hide();
tr.removeClass('shown');
}
else {
// Open this row
var childScope = scope.$new();
childScope.d = row.data();
var html = $compile(childFormatTemplate)(childScope);
row.child(html).show();
tr.addClass('shown');
}
})
}
_dataTable = element.DataTable(options);
どんな助けでも大歓迎です!