我有一个由ng-repeater创建的相当大的表,我一直试图在过滤时为它创建一个线性的进度,但我似乎无法正确获得该指令。 HTML
<div id="myProgress" ng-show="angularIsWorking">
<md-progress-linear md-mode="indeterminate"></md-progress-linear>
</div>
<tr ng-repeat="msg in (filteredItems = (midList | orderBy:sortType:sortReverse | filter: searchFilter | filter: searchByText | limitTo: intMaxMsgs))" ng-class-odd="'trMessagesBlue'" ng-class-even="'trMessagesBright'" my-repeat-directive>
angularjs
myapp.directive('myRepeatDirective', function($timeout) {
return {
link: function(scope, elem, attrs) {
if (scope.$first) {
$timeout(function() {
scope.angularIsWorking = true;
}, 0)
}
else (scope.$last) {
$timeout(function() {
scope.angularIsWorking = false;
}, 0)
}
}
}
});
我的指令在正确的时间运行,但问题是我无法访问我的完整范围,因为它在转发器中,我只通过了项目数据,我的范围内没有其他变量可以&#t; t从这个指令控制。
我尝试通过指令附加myProgressBar,但之后它不起作用,所以它在加载时需要在页面上。
我希望我做错了很多,请帮忙,因为我似乎无法找到一个在转发器过滤时有效的示例。切换路线时,其他所有人都会显示进度。
我也注意到这会减慢我的过滤速度,所以也许我不应该制作这个功能,我只是想要一个指示器,同时延迟将更多的msgs加载到我的表中
谢谢