Угловой нг-шоу, как сделать видимым
Работа над простой контактной формой, где мне нужно показать сообщение об ошибке, если $scope не определен.
Часть проверки работает, однако я не могу вспомнить, как включить просмотр сообщения в ng-show на стороне html.
HTML:
<p class="response error" ng-show="error">{{errorMessage}}</p>
JS:
var $emptyContent = 'Please enter your prices.';
app.controller('priceForm', ['$scope', '$http', function($scope, $http){
$scope.formData;
// Process the form data
$scope.submitForm = function () {
console.log($scope.formData);
if($scope.formData == null) {
// Show empty content message
console.log($emptyContent);
}
}
}])
2 ответа
Решение
Просто сделай error
флаг для true
внутри вашего контроллера или вы могли бы просто иметь ng-show="errorMessage"
как @ryanyuyu предложил в комментарии.
Код
$scope.submitForm = function () {
console.log($scope.formData);
if($scope.formData == null) {
$scope.error = true; //or //$scope.errorMessage = $emptyContent;
}
};
Вы не хотите создавать собственную область ошибки, вы используете предопределенный объект для решения этой проблемы
<form name="myForm">
<label>
Enter your name:
<input type="text"
name="myName"
ng-model="name"
ng-minlength="5"
ng-maxlength="20"
required />
</label>
<pre>myForm.myName.$error = {{ myForm.myName.$error | json }}</pre>
<div ng-messages="myForm.myName.$error" style="color:maroon" role="alert">
<div ng-message="required">You did not enter a field</div>
<div ng-message="minlength">Your field is too short</div>
<div ng-message="maxlength">Your field is too long</div>
</div>
</form>
https://docs.angularjs.org/api/ngMessages/directive/ngMessages