我在我的控制器中有这个在$ 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中我有一个名为login的方法,它假设要检索从控制器发送的数据,但到目前为止,当我执行console.log(formData)时,我得到一个值为null。
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>
我收到此控制台错误无法读取null的“login”属性
我的app.js
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])
答案 0 :(得分:0)
如果我正确阅读了您的代码,问题是您使用的是2个不同的模块。
尝试为控制器使用相同的模块
angular.module('sameModule', [])
.controller('loginController', function($scope, Authentication){
...}
和服务/工厂一样
angular.module('sameModule', [])
.factory('Authentication', function($http){...
}
或将服务/工厂的模块注入控制器模块:
angular.module('starter.controllers', ['starter.services'])
另请阅读此topic,它可以帮助您理解这个想法......
希望它会有所帮助。
答案 1 :(得分: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);
})
}
};