Угловые формы представления вопросов

0

Это мой файл 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
            });
        });

    }
});

как я могу взять только пароль и имя пользователя в моем контроллере.. так что становится легко зарегистрироваться!

  • 1
    Эй, попробуйте передать «formData» на событие клика следующим образом: <button class = "button button-block button-positive" ng-click = "signup (formData)"> SignUp </ button>
Теги:
ionic-framework

2 ответа

1
Лучший ответ

Вы фактически передаете контроллер формы вашему методу регистрации. Это не то, что вы хотите.

Вы уже получили доступ к своим значениям полей email и password через formData.email и formData.password в своем представлении, чтобы вы могли настроить звонок к signup, включив formData, как это предложено в комментариях.

Но поскольку вы объявляете $scope.data своим контроллером, вы можете повторно использовать те, а не formData в директиве ng-model представления, потому что в настоящее время этот объект data, похоже, не используется.

0

Создайте объект в функции, используя полученные вами данные. Просто сделайте что-то вроде var reqData = { email: data.email, password: data.password }; а затем выполните $http.post(URL.url + '/registration',reqData).

Надеюсь, поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню