angular / material

Material design for AngularJS
https://material.angularjs.org/
MIT License
16.54k stars 3.39k forks source link

mdDialog is broken on 0.11 with ngAnimate 1.3.18 on Safari #4497

Closed websirnik closed 9 years ago

websirnik commented 9 years ago

Here is the codepen to test in Safari: http://codepen.io/anon/pen/GpJBej

ThomasBurleson commented 9 years ago

Wish we had discovered this this morning....

RolandHeath commented 9 years ago

On chrome 44 it will throw a warning (unable to find node md-dialog in element, angular.js:11707), but still work. Not sure if related.

Further investigation TL:DR This warning results from a div being wrapped around md-dialog in one of the more recent versions.

In angular-material, inside the onShow method for mdDialog, you call: $mdUtil.extractElementByName(element, 'mdDialog') Within this, you have: if (element[i].nodeName.toLowerCase() === nodeName) { return angular.element(element[i]); } element[i].nodeName.toLowerCase() is now "DIV" nodeName is "md-dialog"

So it seems like these don't match anymore, and it ends up at: $log.warn( $mdUtil.supplant("Unable to find node '{0}' in element.",[nodeName]) );

ThomasBurleson commented 9 years ago

The mdDialog problems are caused by ngAnimate and animateCss::maxParseTime( ) null reference errors. This will be fixed today and committed to master.

The warning is a separate logging issue and will also be improved/resolved soon.

ThomasBurleson commented 9 years ago

This is related to a logic issue with $mdUtil.extractElementByName( )