我試圖在UI Bootstrap模式中使用ng消息進行UI驗證反饋。 (http://angular-ui.github.io/bootstrap/#/modal)。Angular ng消息需要UI內的錯誤Bootstrap模式
每次打開模式,我都會得到這個錯誤。
[$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個鏈接)
我想這是與模式的東西。 任何人都有什麼可以導致這個錯誤的想法?
<div ng-messages="formTrocaDeSenha.senhaAntiga.$error"></div>
<div ng-message="required">Campo obrigatório</div>
<div ng-message="minlength">Mínimo de 8 caracteres</div>
你應該巢他們,正確的方法:
你說得對,它既適用於在ng消息下定義消息,也適用於ng-messages-include。 但我仍然不知道爲什麼它不能像這個plunker(http://plnkr.co/edit/FipgiTUaaymm5Mk6HIfn)那樣在同一個div中使用ng-messages-include屬性。 如果我這樣做,我仍然得到要求的錯誤。 –
我無法回答,具體而言,爲什麼這個plunker代碼不起作用,但我在這裏看不到Angular ng-message文檔中的這種用法:https://docs.angularjs.org/api/ngMessages顯示與上面的答案類似,使用ng-messages-include包含屬性*的div與具有ng-messages屬性的div相似。 這是可能的,掠奪者顯示舊式的過時但現在失敗的舊式聲明。 – jmmygoggle
在模態框中使用ng-messages時,我遇到了同樣的問題。如果我在外面使用,我可以看到它的工作。任何想法? – vuquanghoang