Kartik Khandelwal
Kartik Khandelwal

Reputation: 47

Angular form submissions issues

This is my signup.html file i want to take only password and username from this form to my controller.but I not able to access form elements through this !

<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>

this is my controller for signup

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
            });
        });

    }
});

how could i take only password and username in my controller .. so that it gets easy to signup !

Upvotes: 0

Views: 35

Answers (2)

zoom
zoom

Reputation: 1756

You are actually passing the form controller to your signup method. This is not what you want.

You already got access to your email and password field values through formData.email and formData.password in your view, so you can adjust the call to the signup by including formData as suggested in the comments.

But as you declare $scope.data is your controller, you might want to reuse those instead of formData in your ng-model directive of the view, because currently this data object does not seem to be used.

Upvotes: 1

Raul A.
Raul A.

Reputation: 333

Create an object in the function using the data you received. Just do something like var reqData = { email: data.email, password: data.password }; and then do $http.post(URL.url + '/registration',reqData).

Hope it helps.

Upvotes: 0

Related Questions