Web の登録機能を実装しようとすると、問題が発生します。
正直なところ、昨日、angularJs (および javascript について少し) についてのドキュメントを読みました + プッシュ中。だから、私にそんなに苦労しないでください:)
以下は私の指示です:
var app = angular.module('register-user', []);
app.directive('register', function () {
return {
restrict: 'E',
templateUrl: 'app/views/register.html',
controller: RegistestCtrl,
controllerAs: 'registerCtrl'
};
});
コントローラー:
RegistestCtrl.$inject = ['RegisterService'];
function RegistestCtrl(registerService) {
this.user = {};
this.isProcessing = false;
this.isRegistering = function () {
return this.isProcessing;
};
this.setRegistering = function (value) {
this.isProcessing = value;
};
this.register = function () {
this.setRegistering(true);
function registerSuccess(result) {
alert("registerSuccess: " + JSON.stringify(result));
this.setRegistering(false);
}
function registerFail(error) {
alert(error.message)
this.setRegistering(false);
}
registerService.register(this.user.email, this.user.pass).then(registerSuccess, registerFail);
};
}
その場合のサービスは次のとおりです。
angular.module('app').factory('RegisterService', RegisterService);
RegisterService.$inject = ['$http', 'ENDPOINT'];
function RegisterService($http, endpoint) {
var service = {};
service.register = register;
return service;
function register(email, pass) {
return $http({
method: 'POST',
url: endpoint.URL + endpoint.REGISTER,
data: {
"email": email,
"password": pass
}
}).then(handleSuccess, handleError);
}
function handleSuccess(res) {
return res.data;
}
function handleError(error) {
return function () {
return {
success: false,
message: error
};
};
}
}
最後に、問題は次のとおりです。
TypeError: this.setRegistering は registerSuccess の関数ではありません
次の行を指しています。
this.setRegistering(false);
this.setRegistering(false);
他のことはOKですが、これを呼び出して、登録が完了したときにプログレスサークルを非表示にしたいと思います。ここでヒントをいただけませんか。
ここで、変数のスコープで何か問題が発生したと思います。しかし、どこから始めればよいかわかりません。