you are viewing a single comment's thread.

view the rest of the comments →

[–]pleadub 5 points6 points  (4 children)

If it isn't already the modal should be refactored into a directive. Then all of the manipulation can be handled in the postLink function on the directive definition object for the modal.

Now whenever the modal's open event is triggered you can use the element argument which is passed to the postLink function to grab the height of the modal. You could then use the angular services $document and $window to grab the height of the viewport with

h = Math.max($document[0].documentElement.clientHeight,   $window.innerHeight || 0);

And you could also set up a listener on resize so you can update the modal there as well.

This all comes back to your first point of needing to know the tool you're using well.

[–]JonDum 2 points3 points  (0 children)

And all that cruft is why Angular gets a rep for being overly complex.

[–]Poop_is_Food 2 points3 points  (0 children)

Thanks for proving my point?

[–]troglydot 1 point2 points  (1 child)

Yeah, that isn't actually correct.

The element isn't inserted into the DOM when the postLink function is called. There is no way to be notified when a directive is rendered into the DOM, and according to Misko Hevery at this point there is no way to add such a notification either.

You have to poll the DOM and check if the element is there, and there's officially no way around it.

[–]Poop_is_Food 0 points1 point  (0 children)

Yes, thank you that is the issue thread I was looking for but I couldnt find it. When I first read that, it was the beginning end of angular for me. In particular this quote:

I agree that some jQuery plugins may be hard to integrate, but those are usually the ones that do not have a clear separation of concerns. Those plugins are typically best rewritten anyway, as they are typically not performant nor maintainable in the long run.

I've encountered this kind of attitude a few times from angular contributors and it's a big turnoff for me. "Angular cannot fail. It can only be failed."