Ah, this is a directive, in the html I have:

   *     <div class="tours-dialog-list-container">*
*            <div tours-dialog-list class="tours-dialog-list" 
ng-repeat="(tourTitle, tourObject) in tours"></div>*
*        </div>*

On Tuesday, March 11, 2014 5:21:03 PM UTC, [email protected] wrote:
>
> Hi Sander, Thao,
>
> I had to overcome this issue today. My case was the fact that I was 
> building a dialog that I need to position in the middle of the screen. The 
> dialog's content is ng-repeat directive that has dynamic size. I need to 
> call my function *centerDialog* once everything is rendered and I need to 
> know its final height to calculate the new offset of the dialog.
>
> So, this ideally needs to happen *after* the last element is rendered.
>
> The trick is to use *$timeout **or** $evalAsync *. The difference is well 
> explained over here:
> http://stackoverflow.com/questions/17301572/angularjs-evalasync-vs-timeout
>
> My code goes:
>
>>
>> *.directive('toursDialogList', function($timeout){*
>>
>> *    return {*
>>
>> *        restrict: 'A',*
>>
>> *        replace: false,*
>>
>> *        template: '<div class="entry" 
>>> ng-click="startTour(tourObject)"></div>',*
>>
>> *        link: function(scope, element) {*
>>
>> *            if (scope.$last) {*
>>
>>
>>> *                $timeout(scope.centerDialog);*
>>
>> *            }*
>>
>> *        }*
>>
>> *    };*
>>
>> *})*
>>
>>
> I hope that helps.
>
> - Patryk 
>
>
> On Tuesday, March 11, 2014 5:45:54 AM UTC, Sander Elias wrote:
>>
>> Hi Thao,
>>
>> It is possible to do, and it can even be done in the template. When the 
>> last data-item is rendered item.$last === true. This is of course 
>> documented <http://docs.angularjs.org/api/ng/directive/ngRepeat>.
>> However, usually this is not a good idea, unless you need to something 
>> visual with the last item.
>> What is it you want to get done?
>>
>> Regards
>> Sander
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to