2017-01-09 108 views
0

我想創建註冊表單沒有Java控制器,只有控制器在Angular。但是我在Angular的這個控制器UserRegistration中遇到了問題。在我的觀點是好的,但我不知道好Java作爲Angular。註冊功能不工作AngularJS和Java

這裏是我的代碼:

用戶構造器 公衆用戶(字符串名稱,字符串電子郵件,字符串passwordHash)

註冊資源:

@Component 
@Path("/register") 
public class RegisterResource { 

    @Autowired 
    private UserDao userDao; 

    @Path("registration") 
    @POST 
    @Produces(MediaType.APPLICATION_JSON) 
    public User user(User user) 
    { 
     user(user).addRole(Role.USER); 




     return this.userDao.save(user); 
    }} 

app.js

angular.module('exampleApp', ['ngRoute', 'ngCookies', 'exampleApp.services']) 
    .config(
     [ '$routeProvider', '$locationProvider', '$httpProvider', function($routeProvider, $locationProvider, $httpProvider) { 

      $routeProvider.when('/register', { 
       templateUrl: 'partials/register.html', 
       controller: UserController 
      }); 

function UserController($scope, $http) { 
    $scope.user = {}; 


    $scope.register = function() { 
     this.UserRegister.user({username: $scope.user.username, email: $scope.user.emailAddress, password: $scope.user.password}) 

     this.router.navigate(['/login']); 
    } 
    } 

var services = angular.module('exampleApp.services', ['ngResource']); 


services.factory('UserRegister', function($resource) { 

    return $resource('rest/register/:action', {}, 
     { 
      authenticate: { 
       method: 'POST', 
       params: {'action' : 'registration'}, 
       headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
      } 
     } 
    ); 
}); 

和我的register.html pastebin:link

非常感謝!

+0

確定注入UserRegister服務......但什麼問題到底是?也請在這裏發佈所有相關的代碼,避免鏈接。 –

+0

函數註冊()不工作我的一些問題是在app.js,但我找不到在哪裏。 –

+0

@OvidiuDolha你能幫忙嗎? –

回答

0

您正在使用$resource語法宣佈行動獲得的資源,就像這樣:

return $resource('rest/register/:action', {}, 
    { 
     authenticate: { 
      method: 'POST', 
      params: {'action' : 'registration'}, 
      headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
     } 
    } 
); 

(見https://docs.angularjs.org/api/ngResource/service/ $資源)

但是當你使用資源,你是不是調用的行動。你應該這樣做:

$scope.register = function() { 
    this.UserRegister.authenticate({username: $scope.user.username, email:  $scope.user.emailAddress, password: $scope.user.password}) 
    this.router.navigate(['/login']); 
} 

你還需要在你的控制器

function UserController($scope, $http, UserRegister) { 
    this.UserRegister = UserRegister 
+0

Does'nt工作,這一點。你有Skype嗎?我會與你分享我的屏幕,而且會更容易。 –