以下の機能があります。これは、ユーザーが正しいパスワードとユーザー名を入力したかどうかを確認します。これは正しく機能しますが、関数は成功/エラー関数が起動する前に戻ります。http取得要求を実行する際の競合状態を修正しました。angularJS
したがって、関数は常にtrueを返します。関数に正しい値が返されるようにするには、どのような方法が最適でしょうか。
angular.module('services.security', [])
.provider('securityService', function() {
this.$get = function ($q, $location, $rootScope, $window, $injector) {
...
loginCheck: function(username, password) {
var failed = true;
$injector.get('$http').post(AUTH_URL,
{username: username, password: password}, {loginType: "cancel"}
).success(function loginSuccess(data) {
failed = false;
}).error(function loginFailure(data, status) {
failed = true;
});
return failed;
},
'$のinjector'は何ですか?それは非同期の投稿ですか? – choz
'$ injector'はAngularの依存性注入サービスですが、' $ http'を直接注入するのではなく、なぜ@OPがインジェクタを注入しているのか分かりません... –