angular-ui / bootstrap

PLEASE READ THE PROJECT STATUS BELOW. Native AngularJS (Angular) directives for Bootstrap. Smaller footprint (20kB gzipped), no 3rd party JS dependencies (jQuery, bootstrap JS) required. Please read the README.md file before submitting an issue!
http://angular-ui.github.io/bootstrap/
MIT License
14.3k stars 6.74k forks source link

rendering of uib-typeahead on chromium browser fails with "Cannot read property 'originalExp' of undefined" #6592

Closed larifari closed 6 years ago

larifari commented 6 years ago

Bug description:

Rendering of uib-typeahead directive fails on chromium browser with error:

angular.js:14199 TypeError: Cannot read property 'originalExp' of undefined
    at Scope.scopePrototype.$watch (<anonymous>:1:5644)
    at new <anonymous> (ui-bootstrap-tpls.js:6755)
    at Object.invoke (angular.js:4771)
    at $controllerInit (angular.js:10592)
    at nodeLinkFn (angular.js:9469)
    at compositeLinkFn (angular.js:8810)
    at compositeLinkFn (angular.js:8813)
    at compositeLinkFn (angular.js:8813)
    at nodeLinkFn (angular.js:9545)
    at compositeLinkFn (angular.js:8810)

This only happens with chromium browser. I checked Firefox 54.0 on Linux, Firefox 54.0.1 on Mac, Chrome 59.0.3071.115 on Mac, Safari 10.1.1 on Mac and Opera on Mac, they all work fine.

edit: just installed official google chrome for linux (Version 59.0.3071.115 (Official Build) (64-bit)) / same error there

All my previously working typeahead fields have failed. On debugging this issue, I discovered that the examples from the documentation also fail in chromium browser. It's obviously some weird interaction between ui-bootstrap and the chromium browser. I really don't know whom to take this up with.

Steps to reproduce the issue:

use chromium browser Version 59.0.3071.109 (Developer Build) Built on Ubuntu , running on Ubuntu 16.04 (64-bit) or chrome for Linux (Version 59.0.3071.115 (Official Build) (64-bit)).

head to documentation page https://angular-ui.github.io/bootstrap/#!#typeahead have a close look at the "Asynchronous results" example. You'll see the directive break and find the 'originalExp' error on the console.

Version of Angular, UIBS, and Bootstrap

my own setup: AngularJS: 1.5.11 UIBS: bower 2.5.0 Bootstrap: boostrap-css 3.3.4

and whatever you are currently using on the documentation platform.

larifari commented 6 years ago

Did some more digging, because it was such a bizare bug, turns out, the "AngularJS Birbal" chrome extension was at fault.