Angular.js: Ошибка с указанием неточных причин: Ошибка: [$ compile: ctreq] Контроллер ngModel, требуемый директивой ngClick, не найден!

Созданный на 9 апр. 2014  ·  3Комментарии  ·  Источник: angular/angular.js

Эта короткая скрипка http://jsfiddle.net/x3EtD/7/ показывает ошибки в консоли, но они указывают на проблему, которой не существует. А именно, что директива ngClick требует ngModel, чего нет. Кажется, есть ошибка в том, как angular заполняет пробелы в этом сообщении об ошибке.

Проблема в этом случае заключается в том, что для всех элементов ввода была создана настраиваемая директива, для которой требуется ngModel, но флажок в этом примере не установлен. Как ни странно, на самом деле это не нарушает никакой функциональности, но извергает вводящие в заблуждение ошибки в консоли. Изменение requires: 'ngModel' на requires: '?ngModel' устраняет ошибку в скрипке.

Отследить это было сложно, поскольку ошибки явно указывали на проблему с моим использованием ng-click, а не на настоящего виновника.

Я подозреваю, что в ошибке должно быть написано Error: [$compile:ctreq] Controller 'ngModel', required by directive 'input', can't be found!

ОС: Ubuntu 12.04
Браузеры: Chromium 33, Firefox 28
Проверенные угловые версии: 1.2.1, 1.2.15

low inconvenient bug

Все 3 Комментарий

Я только что тестировал это с помощью 1.2.16, и там тоже возникает проблема, это интересно!

Вы ожидаете, что ошибка будет выдана для входной директивы, но вместо этого она ссылается на ngClick. Очень странно.

Я займусь этим.

Похоже на # 7059

Я думаю, что понимаю, что вызывает это, я исправлю через несколько часов, если меня никто не опередит.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги