угловой, как передать объект от контроллера к сервису

0

У меня есть это в моем контроллере, который извлекает и помещает объект внутри объекта $ scope.formData.

angular.module('starter.controllers', [])

.controller('loginController', function($scope, Authentication){
$scope.formData = {};

$scope.processForm = function(){
    Authentication.login($scope.formData);
    //$http({
    //    method  : 'GET',
    //    url     : 'http://localhost:8888/employees/login',
    //    params: $scope.formData
    //})
    //    .success(function(respond){
    //        $scope.state.go('main');
    //    })
}

})

в службе js у меня есть метод, называемый логином, который, как предполагается, извлекает данные, отправленные с контроллера, но пока im получает значение null, когда я делаю console.log(formData).

angular.module('starter.services', [])

.factory('Authentication', function($http){

    this.login = function(formData){
    console.log(formData);
    return $http({
            method  : 'GET',
            url     : 'http://localhost:8888/employees/login',
            params: formData
        })
}

    return null;
})

это мой html

<ion-view view-title="login">
<ion-content class="padding has-header">
    <div class="row">
        <div class="col col-50 col-offset-25">
            <div class="card">
                <div class="item item-text-wrap">
                    <form ng-submit="processForm()">
                        <div class="list">
                            <label class="item item-input">
                                <input type="text" placeholder="First Name" ng-model="formData.AccessKey" required="true">
                            </label>
                            <label class="item item-input">
                                <input type="text" placeholder="Last Name" ng-model="formData.Password" required="true">
                            </label>
                        </div>
                        <button class="button button-full button-positive">
                            Sign me in
                        </button>
                    </form>
                </div>
            </div>
        </div>
    </div>
</ion-content>

Я получаю эту консольную ошибку Не могу прочитать свойство 'login' из null

my app.js

angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])
Теги:

2 ответа

0

я нашел свою проблему

.factory('Authentication', function($http){

return {
    login:  function(formData) {
        $http({
            method  : 'GET',
            url     : 'http://localhost:8888/employees/login',
            params: formData
        })
        .success(function(respond){
            console.log(respond);
        })
    }
};
0

Если я правильно прочитал ваш код, проблема в том, что вы используете 2 разных модуля.

Попробуйте использовать те же модули для контроллера

 angular.module('sameModule', [])

    .controller('loginController', function($scope, Authentication){
...}

и сервис/завод, как

     angular.module('sameModule', [])

.factory('Authentication', function($http){...
}

или для ввода модуля из сервиса/фабрики в модуль контроллера:

angular.module('starter.controllers', ['starter.services'])

Читайте также эту тему, это может помочь вам понять идею...

Надеюсь, это будет полезно.

  • 0
    в моем app.js я включаю оба модуля
  • 0
    Попробуйте использовать одинаковые модули для контроллеров и заводских.

Ещё вопросы

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