Я рендеринг строк таблицы с помощью ngRepeat:вручать, когда ngRepeat не имеет элементов
<tr ng-repeat="User in ReportModel.report" on-finish-render>
<td><span>{{User.name}}</span></td>
</tr>
У меня есть эта on-finish-render
директивы испускать событие, если слушать, дайте мне знать, когда таблица готова:
app.directive('onFinishRender', function ($timeout) {
return {
restrict: 'A',
link: function (scope, element, attr) {
if (scope.$last === true) {
$timeout(function() {
scope.$emit('ngRepeatFinished');
});
}
}
}
});
Это то, что происходит, когда ngRepeatFinished событие генерируется в контроллере:
$scope.$on('ngRepeatFinished', function(ngRepeatFinishedEvent) {
//set a variable to true which datatables directive is watching
//when that variable is true, initiate datatables
$rootScope.ReportReady = true;
});
Тогда я DataTables директива искал, когда отчет будет готов:
scope.$watch(
function() {
return $rootScope.ReportReady
},
function(newValue, oldValue) {
if (newValue) {
var dTable = element.dataTable(scope.options);
$rootScope.ReportVisible = true;
}
});
Проблема иногда нет каких-либо элементов в отчете поэтому событие не излучаемые и DataTable не имеет просмотров.
Любые предложения?
Какое событие создает «ReportModel.report»? – georgeawg