我使用JHipster創建了一個應用程序,並嘗試編輯`register.html'。在我需要幫助的代碼如下所示:Jhipster生成的應用程序,默認AngularJS註冊表格
<div class="alert alert-success" ng-show="vm.success" data translate="register.messages.success">
<strong>Registration saved!</strong> Please check your email for confirmation.
</div>
<div class="alert alert-danger" ng-show="vm.error" data-translate="register.messages.error.fail">
<strong>Registration failed!</strong> Please try again later.
</div>
我省略了代碼的其餘部分,因爲他們是平等的這兩個,只能用不同的消息和ng-models
。 &的register.controller.js
:
(function() {
'use strict';
angular
.module('MyApp')
.controller('RegisterController', RegisterController);
RegisterController.$inject = ['$translate', '$timeout', 'Auth', 'LoginService'];
function RegisterController ($translate, $timeout, Auth, LoginService) {
var vm = this;
vm.doNotMatch = null;
vm.error = null;
vm.errorUserExists = null;
vm.login = LoginService.open;
vm.register = register;
vm.registerAccount = {};
vm.success = null;
$timeout(function(){angular.element('#login').focus();});
function register() {
if (vm.registerAccount.password !== vm.confirmPassword) {
vm.doNotMatch = 'ERROR';
} else {
vm.registerAccount.langKey = $translate.use();
vm.doNotMatch = null;
vm.error = null;
vm.errorUserExists = null;
vm.errorEmailExists = null;
Auth.createAccount(vm.registerAccount).then(function() {
vm.success = 'OK';
}).catch(function (response) {
vm.success = null;
if (response.status === 400 && response.data === 'login already in use') {
vm.errorUserExists = 'ERROR';
} else if (response.status === 400 && response.data === 'e-mail address already in use') {
vm.errorEmailExists = 'ERROR';
} else {
vm.error = 'ERROR';
}
});
}
}
}
})();
我的問題是默認處理消息的錯誤必須被隱藏,一旦形式的取值,應根據條件顯示。但我無法弄清楚如何使這項工作... 下面是默認register.html
頁:
不知道究竟你正在尋找。看起來你想要實現表單驗證。如果是這種情況,請使用ng-messages。此鏈接很好地解釋了它http://www.yearofmoo.com/2014/05/how-to-use-ngmessages-in-angularjs.html –
感謝您的鏈接。我會通過這個。我主要關心的是,當窗體加載時,圖片中顯示的消息必須被默認隱藏,一旦表單被評估,相關的消息就會出現。但在這種情況下(和默認的jhispter應用程序),所有的消息都默認顯示。 –
ng消息將照顧它。它會顯示基於驗證的消息,只有那些失敗的將顯示 –