UI Bootstrapモーダル内のUI検証フィードバックにng-messagesを使用しようとしています。( http://angular-ui.github.io/bootstrap/#/modal )。
モーダルを開くたびに、このエラーが発生します。
[$compile:ctreq] Controller 'ngMessages', required by directive 'ngMessage', can't be found!
ここ ( https://docs.angularjs.org/api/ngMessages )で述べたように、すべてが正しくセットアップされています。すべての angularjs ファイルが参照され、メッセージ モジュールの依存関係がメイン モジュールに追加され、ディレクティブが適切に使用されますが、それでもこのエラーが発生します。ng-message または ng-messages-include の両方を使用すると発生します。
これが私のモーダルの HTML コンテンツ テンプレートです。
<form name="formTrocaDeSenha" data-ng-submit="vm.submit(formTrocaDeSenha.$valid)" novalidate>
<div class="form-group">
<label class="control-label">Senha atual:</label>
<div>
<input type="password" name="senhaAntiga" class="form-control" style="width: 256px" data-ng-model="vm.senhaAntiga" required minlength="8" autofocus>
</div>
<div ng-messages="formTrocaDeSenha.senhaAntiga.$error"></div>
<!--data-ng-messages-include="/app/mensagensValidacao.html"></div>-->
<div ng-message="required">Campo obrigatório</div>
<div ng-message="minlength">Mínimo de 8 caracteres</div>
</div>
<button class="btn btn-lg btn-info" type="submit">Enviar</button>
<button class="btn btn-lg btn-info" type="button" data-ng-click="vm.cancelar()">Cancelar</button>
<br />
<div style="width:50%" data-ng-show="vm.message != ''" class="alert alert-danger">{{vm.message}}</div>
</form>
私はmessges-includeディレクティブをチェックしましたが、すでに親スコープでコントローラーを見つけようとしています:
.directive('ngMessagesInclude',['$templateRequest', '$document', '$compile', function($templateRequest, $document, $compile) {
return {
restrict: 'AE',
require: '^^ngMessages', // we only require this for validation sake
link: function($scope, element, attrs) {}
}
};
うまく機能するガイドとして私が取ったスコット・アレンからのプランクを次に示します:/ FipgiTUaaymm5Mk6HIfn(2つ以上のリンクを投稿することはできません)
私はそれがモーダルの何かだと思います。このエラーの原因を知っている人はいますか?