Angular.js: Erro mostrando causas imprecisas: Erro: [$ compile: ctreq] Controlador 'ngModel', exigido pela diretiva 'ngClick', não pode ser encontrado!

Criado em 9 abr. 2014  ·  3Comentários  ·  Fonte: angular/angular.js

Este pequeno violino http://jsfiddle.net/x3EtD/7/ mostra erros no console, mas eles estão indicando um problema que não existe. Ou seja, que a diretiva 'ngClick' requer 'ngModel', o que não é verdade. Parece haver um bug na maneira como o angular preenche os espaços em branco dessa mensagem de erro.

O problema neste caso é que uma diretiva personalizada que requer ngModel foi criada para todos os elementos de entrada, mas a caixa de seleção no exemplo não tem um. Ironicamente, ele não interrompe nenhuma funcionalidade, mas emite erros enganosos no console. Alterar requires: 'ngModel' para requires: '?ngModel' resolve o erro no violino.

Rastrear isso foi difícil, pois os erros apontavam explicitamente para um problema com o meu uso do ng-click em vez do verdadeiro culpado.

Suspeito que o erro deveria ser Error: [$compile:ctreq] Controller 'ngModel', required by directive 'input', can't be found!

SO: Ubuntu 12.04
Navegadores: Chromium 33, Firefox 28
Versões angulares testadas: 1.2.1, 1.2.15

low inconvenient bug

Todos 3 comentários

Acabei de testar isso com 1.2.16, e o problema ocorre aí também, é interessante!

Você esperaria que o erro fosse lançado para a diretiva de entrada, mas em vez disso faz referência a ngClick. Muito estranho.

Vou dar uma olhada nisso.

Parece semelhante a # 7059

Acho que vejo o que está causando isso, terei uma solução em algumas horas, se ninguém chegar antes de mim.

Esta página foi útil?
0 / 5 - 0 avaliações