ASP.NET MVC + angularJSで開発をしています。
ログイン処理時にまずapi経由で認証結果を取得して、認証されない場合、postを発生させずエラーメッセージの表示処理のみをjavascriptから行いたいと思っています。
html
<form action="/Test/Main" method="post">
<table>
<tr>
<th>ユーザーID</th>
<td><input type="text" name="UserCode" ng-model="UserCode" /></td>
</tr>
<tr>
<th>パスワード</th>
<td><input type="text" name="UserPassword" ng-model="UserPassword" /></td>
</tr>
<tr>
<td colspan="2" style="text-align:right;">
<input type="submit" value="ログイン" name="LoginSubmit" ng-click="DoAuthenticate()" /><br />
{{loginResult}}<br />
</td>
</tr>
</table>
</form>
angularJS
$scope.DoAuthenticate = function() {
$http({
method : 'GET',
url : "認証用のurl"
}).success(function(data, status, headers, config) {
if (!data) {
$scope.loginResult = "ログインに失敗しました";
}
}).error(function(data, status, headers, config) {
console.log(status);
});
};
if (!data)のとき、postが発生すると画面の再描画が行われてしまい、$scope.loginResultのメッセージも消えてしまいます。
そもそも通信が非同期なので難しいのかもしれないと思ってはいるのですが、なにかいい方法はないでしょうか。