Недавно подключил к проекту AngularJS Bootstrap-UI и сразу обнажурил баг: на страницах, где используется carousel (класс для слайдшоу в Bootstrap), выскакивает следующая ошибка:
1
Controller 'carousel', required by directive 'ngTransclude', can't be found!
Полный лог:
123456789101112131415161718
Error: [$compile:ctreq] Controller 'carousel', required by directive 'ngTransclude', can't be found!
http://errors.angularjs.org/1.2.13/$compile/ctreq?p0=carousel&p1=ngTransclude
at http://aliya-soap.ru/assets/application-177047d459241e8020f5604db9c970de.js.pagespeed.jm.eNxPlzr5Jo.js:1:146612
at g (http://aliya-soap.ru/assets/application-177047d459241e8020f5604db9c970de.js.pagespeed.jm.eNxPlzr5Jo.js:1:169688)
at v (http://aliya-soap.ru/assets/application-177047d459241e8020f5604db9c970de.js.pagespeed.jm.eNxPlzr5Jo.js:1:171431)
at http://aliya-soap.ru/assets/application-177047d459241e8020f5604db9c970de.js.pagespeed.jm.eNxPlzr5Jo.js:1:174956
at http://aliya-soap.ru/assets/application-177047d459241e8020f5604db9c970de.js.pagespeed.jm.eNxPlzr5Jo.js:1:180992
at u (http://aliya-soap.ru/assets/application-177047d459241e8020f5604db9c970de.js.pagespeed.jm.eNxPlzr5Jo.js:1:195225)
at u (http://aliya-soap.ru/assets/application-177047d459241e8020f5604db9c970de.js.pagespeed.jm.eNxPlzr5Jo.js:1:195225)
at http://aliya-soap.ru/assets/application-177047d459241e8020f5604db9c970de.js.pagespeed.jm.eNxPlzr5Jo.js:1:195902
at u.$eval (http://aliya-soap.ru/assets/application-177047d459241e8020f5604db9c970de.js.pagespeed.jm.eNxPlzr5Jo.js:1:200165)
at u.$digest (http://aliya-soap.ru/assets/application-177047d459241e8020f5604db9c970de.js.pagespeed.jm.eNxPlzr5Jo.js:1:198869) <div ng-class="{
'active': leaving || (active && !entering),
'prev': (next || active) && direction=='prev',
'next': (next || active) && direction=='next',
'right': direction=='prev',
'left': direction=='next'
}" class="left carousel-control item text-center ng-isolate-scope" ng-transclude="" href="#carousel-example-generic" data-slide="prev">
Баг находится в директиве carousel контроллера ui.bootstrap.carousel. Можно конечно его удалить из исходников, но я предлагаю способ лучше: переинициализировать этот модуль в нашем javascript файле:
Причина бага? Я её, честно говоря, не вижу. Директива должна вызываться только от аттрибута или элемента ‘carousel’, но по непонятной причине вызывается и от класса с таким именем.