У меня есть это в моем контроллере, который извлекает и помещает объект внутри объекта $ 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'])
я нашел свою проблему
.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);
})
}
};
Если я правильно прочитал ваш код, проблема в том, что вы используете 2 разных модуля.
Попробуйте использовать те же модули для контроллера
angular.module('sameModule', [])
.controller('loginController', function($scope, Authentication){
...}
и сервис/завод, как
angular.module('sameModule', [])
.factory('Authentication', function($http){...
}
или для ввода модуля из сервиса/фабрики в модуль контроллера:
angular.module('starter.controllers', ['starter.services'])
Читайте также эту тему, это может помочь вам понять идею...
Надеюсь, это будет полезно.