Мой код работал нормально. Я добавил некоторые новые функции для входа, и он сломал его. Поэтому я удалил код. Это исходный формат, но ошибка все еще остается, Создание функции пользовательского обслуживания не является функцией. Я прочитал много вопросов по этой теме, но ни один из ответов не помог.ТипError: Users.create не является функцией
UserController
todoApp.controller('UserController', ['Users','$scope', function UserController(Users, $scope) {
console.log("in user controller");
$scope.formModel = {};
$scope.submitting = false;
$scope.submitted = false;
$scope.has_error = false;
console.log($scope.formModel);
$scope.createUser = function() {
if(!$scope.registerForm.$valid) {
return;
}
Users.create($scope.formModel)
.success(function(data){
$scope.submitting = false;
$scope.submitted = true;
$scope.has_error = false;
$scope.formModel = {}; // clear the form so our user is ready to enter another
$scope.users.push(data);
console.log(":)");
}).error(function(data) {
console.log(":(");
$scope.submitting = false;
$scope.submitted = false;
$scope.has_error = true;
});
};
}]);
user.sevice.js
todoApp.factory('Users', ['$http', function($http) {
return {
get: function() {
return $http.get('/api/users');
},
create: function(userData) {
console.log(userData);
return $http.post('/api/users', userData);
},
delete: function(id) {
return $http.delete('/api/users/' + id);
},
update: function(userData) {
return $http.put('/api/users/' + userData.id, userData);
console.log(userData);
}
}
}]);
register.html
<div class="container">
<div class="row main" ng-controller="UserController">
<div class="main-login main-center">
<h5>Sign up once for instant access.</h5>
<form name="registerForm" ng-submit="createUser()"
novalidate="novalidate"
ng-hide="submitted" >
<div class="form-group">
<label for="name" class="cols-sm-2 control-label">Your Name</label>
<div class="cols-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-user fa" aria-hidden="true"></i></span>
<input type="text"
class="form-control"
ng-model="formModel.name"
id="name"
placeholder="Enter your Name"
required="required" />
</div>
</div>
</div>
<div class="form-group">
<label for="email" class="cols-sm-2 control-label">Your Email</label>
<div class="cols-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-envelope fa" aria-hidden="true"></i></span>
<input type="email"
class="form-control"
ng-model="formModel.email"
id="email"
placeholder="Enter your Email"
required="required" />
</div>
</div>
</div>
<div class="form-group">
<label for="username" class="cols-sm-2 control-label">Username</label>
<div class="cols-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-users fa" aria-hidden="true"></i></span>
<input type="text"
class="form-control"
ng-model="formModel.username"
id="username"
placeholder="Enter your Username"
required="required" />
</div>
</div>
</div>
<div class="form-group">
<label for="password" class="cols-sm-2 control-label">Password</label>
<div class="cols-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-id-badge" aria-hidden="true"></i></span>
<input type="password"
class="form-control"
ng-model="formModel.password"
id="password"
placeholder="Enter your Password"
required="required" />
</div>
</div>
</div>
<label for="confirm" class="cols-sm-2 control-label">Confirm Password</label>
<div class="cols-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-lock fa-lg" aria-hidden="true"></i></span>
<input type="password"
class="form-control"
name="confirm"
id="confirm"
placeholder="Confirm your Password"
required="required" />
</div>
</div>
</div>
<div class="form-group" >
<label for="type" class="cols-sm-2 control-label">User Type</label >
<div class="cols-sm-10">
<span class="input-group-addon"><i class="fa fa-university" aria-hidden="true"></i></span>
<select id="type"
class="form-control"
ng-model="formModel.role"
required="required" >
<option value="" >Please Choose</option >
<option value="1" >Lecturer</option >
<option value="2" >Student</option >
</select >
</div>
</div >
<div>
<button class="btn btn-primary"
ladda="submitting"
data-style="expand-right"
type="submit">
<span ng-show="submitting">Registering</span>
<span ng-show="!submitting">Register</span>
</button>
</div>
</form>
</div>
</div>
</div>
Это сработало. Извините, что не отвечал до сих пор, но я был вдали от компьютера, так как я задал вопрос. В другом случае, если случай «xxxx» заполняется номерами ответов HTTP, например, 403 или 200 для успеха? –
Это дело для успеха, в другом слове только для ответа HTTP 200. Вы можете уловить еще один код ошибки http в 'error' перед закрытием http post. – digit
Я немного смущен относительно того, что делают дела «0000» и «9999». Означает ли это, что он ловит любой ответ HTTP более чем 0000 и менее 9999? –