Странная ошибка angular -ui datepicker
Просто переустановили некоторые компоненты bower, но компоненты, о которых идет речь, не были обновлены, то же самое 0.12.0 ui.bootstrap
. Также используйте ui-router 0.2.13
для изменения состояния на другую страницу.
Нечетное сообщение об ошибке
Error: [$compile:ctreq] Controller 'datepicker', required by directive 'daypicker', can't be found!
Но когда я смотрю файл ui-bootstrap-tpls.js, контроллер датпикера определяется непосредственно над daypicker и должен быть поднят.
Может ли это быть вызвано ошибочным конфликтующим datepicker
именем класса или чем-то?
Я знаю, что это не так много, но будет обновляться, поскольку у меня есть время добавить код. Похоже, что где-то может быть конфликтный datepicker
. Это происходит только на stateChange с одной страницы на другую. Полный поток использования datepicker отлично работает до этой последней страницы. Как пропустить прокси-сервер контроллера, если он находится в одном файле?
В тот момент, когда кто-либо видел это раньше, я был бы благодарен за любые рекомендации.
UPDATE 23 апреля 15: использовал модальное диалоговое окно с формой, которая отправила пользователя на другую страницу с нажатием OK.
Ответы
Ответ 1
Я обновил эту ошибку до ui.bootstrap 0.14.x.
Я перезаписал шаблоны в собственных модулях, которые вызвали проблемы:
angular.module("template/datepicker/datepicker.html", []).run(["$templateCache", function ($templateCache) {
$templateCache.put("template/datepicker/datepicker.html",
"<div ng-switch=\"datepickerMode\" role=\"application\" ng-keydown=\"keydown($event)\">\n" +
" <daypicker ng-switch-when=\"day\" tabindex=\"0\"></daypicker>\n" +
" <monthpicker ng-switch-when=\"month\" tabindex=\"0\"></monthpicker>\n" +
" <yearpicker ng-switch-when=\"year\" tabindex=\"0\"></yearpicker>\n" +
"</div>");
}]);
После удаления модулей он снова работал.
Первоначально я изменил шаблоны для использования шрифтов-знаковых значков вместо глификонов. Теперь я переопределяю класс glyphicon css, чтобы изменить шрифт-удивительные значки:
.glyphicon {
font: normal normal normal 14px/1 ourIconFont;
}
.glyphicon-arrow-right:before,
.glyphicon-chevron-right:before {
content: "\f054";
}
.glyphicon-arrow-left:before,
.glyphicon-chevron-left:before {
content: "\f053";
}
Ответ 2
Вам необходимо обновить ui.bootstrap.0.12.0.js до ui-bootstrap-tpls-0.13.3.js
Ответ 3
Имела ту же самую проблему, наше решение состояло в том, что после обновления до uib 0.14 у нас был настраиваемый шаблон для datepicker, и он должен был добавить uib-префиксы в дочерние директивы внутри datepicker (день, месяц год). например
<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">
<daypicker ng-switch-when="day" tabindex="0"></daypicker>
<monthpicker ng-switch-when="month" tabindex="0"></monthpicker>
<yearpicker ng-switch-when="year" tabindex="0"></yearpicker>
</div>
Изменено на
<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">
<uib-daypicker ng-switch-when="day" tabindex="0"></uib-daypicker>
<uib-monthpicker ng-switch-when="month" tabindex="0"></uib-monthpicker>
<uib-yearpicker ng-switch-when="year" tabindex="0"></uib-yearpicker>
</div>