2016-08-23 14 views
1

送信後にフォームに表示するには、サーバーの応答エラーメッセージを取得する必要があります。私は私がjsのサーバーの応答メッセージ

.error(function (data, status, header, config) { 
    $scope.postDataSuccessfully = false; 
    var messages = []; 
    angular.forEach(data.errors, function (value, key) { 
     $scope.ResponseDetails = "Data: " + data + 
       "<hr />status: " + status + 
       "<hr />headers: " + header + 
       "<hr />config: " + config; 
     messages.push('Error! ' + key + ' is not correct'); 

    }); 
    $scope.messages = messages; 
}); 

とhtmlで

<div ng-repeat="message in messages track by $index"> 
    <div data-ng-hide="message == ''" data-ng-class="(postDataSuccessfully) ? 'alert alert-success' : 'alert alert-danger'"> 
     {{message}} 
    </div> 
</div> 

でこのコードを使用している場合はメッセージが表示されますが、これは後にのみ提出一箇所に表示され、この画像 enter image description here

上のように私はしたいです次の画像のように、エラーのあるフィールドにメッセージを表示するには enter image description here

ここは私のHTMLコードですこのフォーム入力

<div class="form-group"> 
    <label for="type" class="col-sm-3 control-label">{{'TYPE'| translate}}</label> 
    <div class="col-sm-9"> 
    <select class="form-control" id="type" name="type" ng-model="type"> 
     <option ng-repeat="type in types" value="{{type}}">{{type}}</option> 
    </select> 


    </div> 

</div> 
<div class="form-group"> 
    <label for="description" class="col-sm-3 control-label">{{'DESCRIPTION'| translate}}</label> 
    <div class="col-sm-9"> 
    <textarea type="text" rows="3" class="form-control" id="description" name="description" ng-model="description" placeholder="description"></textarea> 
    <br> 
    </div> 
</div> 

答えて

2

2つのオプションがあります。 はどちらかあなたは、各フィールドのエラー・メッセージを入れて、それが

<div ng-messages="myForm.myselect.$error" ng-if="myForm.$submitted || myForm.myselect.$touched"> 
<div ng-message="required">myselect is required.</div> 
</div> 

を発生したときにそれを表示したり、代わりにあなたはトーストポップアップエラーMSGのを使用することができます:

$scope.validateMyData = function() { 
     var errorType = callYourServerService(); 

    if(errorType === "myFirstField") { 
     toaster.pop('error', "Error", "Please insert valid value for myFirstField"); 
    } 
    if(errorType === "mySecondField") { 
     toaster.pop('error', "Error", "Please insert valid value for mySecondField"); 
    } 

...など

+0

こんにちは、thnxさんの返信です。私はこれを試しても、動作していない、私はトースターを試してみてください。スクリプトとCSSが追加されました。 submit validateMyData()で呼び出し、すべてのerrorTypeを追加しましたが、通知があります。角度素材を使用して :あなたはデモの一つに従うことができます – Arter

+0

https://material.angularjs.org/latest/demo/toast .... それともBootsrap https://github.com/とアンギュラ使用しますjirikavi/AngularJS-トースター 希望これは に関して – xelilof

+0

のthnxを助け、私は私が逃したものを知らないが、私はtutotialのように全力を尽くす、とするとき、コールトースター常に型エラーを取得 – Arter

関連する問題