Closed ealtenho closed 7 years ago
we determined that it may be trying to bootstrap twice
I'm still uncertain about what is going on here. Our call to resumeBootstrap
seems to be what causes the thrown error (although the docs site still appears broken whether or not this error is thrown). Specifically, when the module ng
tries to instantiate ngLocale
the runBlocks
for ngLocale
is empty and causes an error.
I don't think that we are bootstrapping twice. I think that the bootstrapping of ngLocale
is failing.
Okay... I tried removing all of our hint modules to see if one of them is causing the error, and I still see it triggered. So it would have to be an error in the overall AngularHint logic.
I don't know very much about the angular-loader
, but I think that it, rather than the AngularHint
logic is causing this particular error. For me, building a hint-bundle
with just the injector logic calls doBootstrap
and attempts to instantiate the empty ngLocale
that cause the failure. @btford any insights with regard to the behavior of the loader?
I was wondering if I could reproduce this behavior by looking at other sites built with Angular. Both https://builtwith.angularjs.org/ and https://www.virginamerica.com/ are broken by the use of AngularHint, although all the module messages appear to work the same. @caguillen214, it seems like our first priority would be to look at these. Especially https://www.virginamerica.com/ seems to be a good example of how AngularHint could be used with a real application. However, both these sites do not have the same issue as the Angulardocs.
The https://www.virginamerica.com/ site is broken with the use of ngHintDom
and ngHintInterpolation
.
The builtwithangular site is broken with the use of ngHintDom
, ngHintEvents
and ngHintInterpolation
.
i'm wondering if it's angular-loader + ngLocale that's giving us problems.
For the docs site, definitely.
I'd focus on the issues you identified, and we can return to the ngLocale thing tomorrow when I'm back.
Ok, our plan will to be try to fix individual modules to get a solid demo going for one of these other sites.
:+1:
Update: the angular docs site was broken by using an outdated version of Angular loader. However, using the updated Angular loader (1.3) was incompatible with sites running Angular 1.2. Hence we created our own modified loader to work with both versions of Angular, see https://github.com/angular/angularjs-batarang/commit/e5e6677223ea72925caab267e1c9411757d35f3d
The https://www.virginamerica.com/ site is broken with the use of ngHintDom and ngHintInterpolation.
ngHintDom is unfeasible except for the patching of action taking place directly within the controller in the current implementation. An alternative solution is being explored.
Issues with ngHintInterpolation were addressed and the module no longer breaks the virginamerica site.
The builtwithangular site is broken with the use of ngHintDom, ngHintEvents and ngHintInterpolation
Again, ngHintDom is being revisited, the problem with ngHintEvents is that older builds of Angular have different events, and ngHintInterpolation no longer stops the site from loading correctly (although it does cause harmless exceptions to be thrown - currently being investigated).
Closing since the angularjs.org issue is tracked in https://github.com/angular/angular-hint/issues/88.
We currently have two methods of dealing with bootstrapping since protractor uses bootstrapping and we use bootstrapping to add in our AngularHintModules.
The angular docs must also used defered bootstrapping because they are tripping our protractor deferring bootstrap logic. However, they also seem to be reaching the normal bootstrapping logic. I think this double bootstrapping is causing the following error:
@btford any thoughts on how to approach this?