I am trying to catch $last property to be notified when ng-repeat finishes off. I've created special directive for that (ngRepeatDoneNotification). Ng-repeat applies to another element directive (unit). So, there is a construction with three directives:
<unit ng-repeat="unit in collection" ng-repeat-done-notification id="{{unit.id}}"></unit>
Once I set scope to be isolated, $last disappeared in my notifier directive.
App.directive('ngRepeatDoneNotification', function() {
return function(scope, element, attrs) {
if (scope.$last){ // ISSUE IS HERE
window.alert("im the last!");
}
};
});
App.directive('unit', function() {
return {
restrict: 'E',
replace: true,
scope: {id: '@'}, // ONCE I ISOLATE SCOPE, $last DISAPPEARED
templateUrl: '/partials/unit.html',
link: function(scope, element) {}
}
});
I've create jsFiddle http://jsfiddle.net/4erLA/1/
How is it possible to catch this?
In order to make the isolated scope to catch $last
, you need to use $parent
to refer to the parent scope like this
if (scope.$parent.$last) {
$rootScope[attrs.ngRepeatDoneNotification] = "$last has been catched"
}
You may refactor it to make it work for both scenario or just simply duplicate it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With