2016-04-01 15 views
1

こんにちは私はフィールドが完了していないと言うエラーが出てもpostメソッドがまだ行われているコントローラを持っています。ページを更新すると、エントリがビューから移動します。どのように私は角度コントローラのこのメソッドにバリデーションを追加しますか?

$scope.create = function() { 
        var account = Account.save($scope.account); 
         modalService.success('Success! Your Account has been created!'); 
         $uibModalInstance.close(account);  
      }; 

私はいくつかのことを試みましたが、機能しませんでした。私はフォームが入力されていないかフィールドがない場合にfalseを返すメソッドが必要です。基本的に422エラー。その投稿はapiのエンドポイントに送られます。

上記の例は自分のコードであり、いくつかの検証を追加する必要がありますが、どこから開始するのか分かりません。

本当に疲れていて、すぐに助けが必要です。

ありがとうございます。

+0

まずフォームのフィールドにrequiredを使用して検証を追加し、save関数を呼び出す前にsubmitでvalidateメソッドを呼び出し、trueまたはfalseを返してフォームを送信して関数を呼び出します。 – chetank

+0

こんにちは、apiエンドポイントにリクエストを送信する前に検証すると大丈夫ですか?もしそうなら、ng-message https://docs.angularjs.org/api/ngMessages/directive/ngMessage – groooves

答えて

1

あなたが実際にAJAXを完了し、その保存方法まで待つと、あなたがすることすべてのフォームを入力する必要があり、フォームのユーザーに送信する前に確認してくださいしたいなら、あなた

var account = Account.save($scope.account).$promise.then(function(){ 
    //success function 
    modalService.success('Success! Your Account has been created!'); 
    $uibModalInstance.close(account);  
}, function(error){ //error function 
    //here is the place you can do error handling part. 
    console.log('Error occured, do handle it here.') 
}); 

更新

に対応できますフィールドとすべて。その後、角度フォーム検証機能を利用することができます。すべてのフォームフィールドには、必要なフィールド上に&のrequired属性が入力されるまで、フォーム送信ボタンを無効にすることができます。

+0

のドキュメントをチェックしてみてください。 – Ben

+0

Parker - すべて完了、あなたは大規模に手伝った。どうもありがとう。 – Ben

+0

@Benはそれを知ってうれしい。ありがとう:-) –

関連する問題