Это мой файл signup.html. Я хочу взять только пароль и имя пользователя из этой формы в свой контроллер. Но я не могу получить доступ к элементам формы через это!
<ion-view view-title="Sign Up">
<ion-content ng-controller="signup">
<div class="figure_img">
<img src="img/logo_image.png">
</div>
<form name="myForm">
<div class="list">
<label class="item item-input">
<input type="text" placeholder="Email ID" id="email" name="email" ng-model="formData.email"
required>
<span ng-show="myForm.email.$error.required && myForm.email.$dirty">required</span>
<span ng-show="!myForm.email.$error.required && myForm.email.$error.email && myForm.email.$dirty">invalid email</span>
</label>
<label class="item item-input">
<input type="password" placeholder="Password" id="password" name="password"
ng-model="formData.password" required>
<span ng-show="myForm.password.$error.required && myForm.password.$dirty">required</span>
</label>
<label class="item item-input">
<input type="password" placeholder="Confirm Password" id="password_c" name="password_c" ng-model="formData.password_c" valid-password-c required>
<span ng-show="myForm.password_c.$error.required && myForm.password_c.$dirty">Please confirm your password.</span>
<span ng-show="!myForm.password_c.$error.required && myForm.password_c.$error.noMatch && myForm.password.$dirty">Passwords do not match.</span>
</label>
<div class="contain-body">
<button class="button button-block button-positive" ng-click="signup(myForm)">SignUp</button>
</div>
</div>
</form>
</ion-content>
</ion-view>
это мой контроллер для регистрации
app.controller("signup", function ($scope,$http,$ionicPopup,URL,$ionicLoading,$timeout,$state) {
$scope.data = {
email :'',
password :''
};
$scope.signup = function (data) {
console.log(data);
$http.post(URL.url + '/registration',data)
.success(function () {
$ionicLoading.show({template:'<ion-spinner class="spinner-energized"></ion-spinner>Complete your Registration through Email'});
$timeout(function () {
$ionicLoading.hide();
$ionicHistory.clearCache().then(function() {
$state.go('EmailLogin') ;
});
},5000);
}).error(function (response) {
$ionicPopup.alert({
title: 'Sign-Up failed!',
template:response.errors.email
});
});
}
});
как я могу взять только пароль и имя пользователя в моем контроллере.. так что становится легко зарегистрироваться!
Вы фактически передаете контроллер формы вашему методу регистрации. Это не то, что вы хотите.
Вы уже получили доступ к своим значениям полей email
и password
через formData.email
и formData.password
в своем представлении, чтобы вы могли настроить звонок к signup
, включив formData, как это предложено в комментариях.
Но поскольку вы объявляете $scope.data
своим контроллером, вы можете повторно использовать те, а не formData в директиве ng-model
представления, потому что в настоящее время этот объект data
, похоже, не используется.
Создайте объект в функции, используя полученные вами данные. Просто сделайте что-то вроде var reqData = { email: data.email, password: data.password };
а затем выполните $http.post(URL.url + '/registration',reqData)
.
Надеюсь, поможет.