Как подключиться к бэкэнд-серверу с помощью API в angularjs ionic

0

Я пытался подключиться к серверу с использованием запросов $ http в ионных угловых. Я хочу зарегистрировать пользователя с помощью API. Может кто-нибудь сказать мне, что случилось с моим кодом? Это мой controller.js

angular.module('app.Auth', [])

.factory('Auth', ['$q', '$http', '$localStorage', 'URL', function($q, $http, $localStorage, URL) {

return {
    register: function(data, success, error) {
        $http.post(URL.api + 'register', data).success(success).error(error)
    }
};
}])
.controller('SignupCtrl', function($scope, $rootScope, $timeout, $stateParams, ionicMaterialInk,Auth,$localStorage,$state,Auth,URL) {

$scope.signupError = function(msg){
    if(msg.status == false){
        $scope.errors = msg.errors;
    }else{
        $scope.errors = ['Error accessing API.'];
    }
};


$scope.signupSuccess = function(response){
    if(response.status==false){
        $scope.errors = response.errors;
    }else{
        alert("success!");
    }

};

$scope.user = {
    firstname:'',
    middlename:'',
    lastname:'',
    password: '',
    email: ''
};

$scope.signupEmail = function(){
    Auth.register($scope.user,$scope.signupSuccess,$scope.signupError);
};
});

и это мой signup.html

<ion-view view-title="Sign Up" name="signup">
<ion-content>
  <div class="list">
   <div ng-if="errors.length > 0" class="error_bg" ng-repeat="error in errors">
            <p class="error" ng-bind="error"></p>
        </div>
    <label class="item item-input item-floating-label">
        <span class="input-label">First Name</span>
        <input type="text" placeholder="First Name" style="color:purple; font-size:18px" ng-model="user.firstname">
    </label>
    <label class="item item-input item-floating-label">
        <span class="input-label">Middle Name</span>
        <input type="text" placeholder="Middle Name" style="color:purple; font-size:18px" ng-model="user.middlename">
    </label>
    <label class="item item-input item-floating-label">
        <span class="input-label">Last Name</span>
        <input type="text" placeholder="Last Name" style="color:purple; font-size:18px" ng-model="user.lastname">
    </label>
    <label class="item item-input item-floating-label">
        <span class="input-label">Email Address</span>
        <input type="text" placeholder="Email Address" style="color:purple; font-size:18px" ng-model="user.email">
    </label>
    <label class="item item-input item-floating-label">
        <span class="input-label">Password</span>
        <input type="password" placeholder="Password" style="color:purple; font-size:18px" ng-model="user.password">
    </label>
    </div>
  <button class="button button-block button-royal" style="background-color:blue" ng-click="signupEmail()">Continue</button>

  • 0
    Вам нужно будет предоставить больше информации. С какой проблемой вы сталкиваетесь? Если вы просто не знаете, как использовать $ http, существует множество примеров. Если вы получаете сообщение об ошибке, опубликуйте сообщение об ошибке и код, который ее вызвал.
  • 0
    хорошо, я добавил детали :)
Показать ещё 2 комментария
Теги:
http
ionic

1 ответ

0

Обратите внимание на правильный синтакс $http.post.

Фактически, $http.post() возвращает обещание, которое имеет метод then() с двумя аргументами (обработчики succcess и ошибок), поэтому ваш запрос HTTP для регистрации службы должен быть переписан с:

$http.post(URL.api + 'register', data).success(success).error(error);

чтобы:

$http.post(URL.api + 'register', data).then(success, error);

Для обещаний в Angular см. Https://docs.angularjs.org/api/ng/service/ $ q

  • 0
    Хорошо, теперь я использую это, но он возвращает ошибку $ http.post (url, {params: {first_name: 'zeeshan'}}). then (функция successCallback (response) {alert (response.data);}, функция errorCallback ( ответ) {alert ('error') alert (response.data);});
  • 0
    Какую ошибку вы получаете?
Показать ещё 2 комментария

Ещё вопросы

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