Угловой нг-шоу, как сделать видимым

Работа над простой контактной формой, где мне нужно показать сообщение об ошибке, если $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

Другие вопросы по тегам