2

メイン ページをロードすると、このページの 3 番目のセクション [ /login GET HTTP request] がメイン ページの div の ng-view 内にロードされます。私の問題は、送信ボタンをクリックすると、指定されたページが送信されず、InitCtrlコントローラー内で login() 関数が呼び出されないことです

これはメインページです:

    <html lang="en" ng-app="mvc-module">
<head>
         <script src='<c:url value="/static/angular.js"/>'></script>
         <script src='<c:url value="/static/todo.js"/>'></script>
</head>
<body>
<div ng-view></div>
</body>
</html>

todo.js:

angular.module("mvc-module", []).config(function ($routeProvider) {
    $routeProvider.
    when('/', {controller: InitCtrl, template: '<div ng-bind-html-unsafe="mainPage"</div>'}).
    otherwise({redirectTo: '/'});
});

function InitCtrl($scope, $http) {

    $http.get("login").success(function (data, status, headers, config) {
    $scope.mainPage = data; // for see the response see /log GET response
    });

    $scope.login = function () {
    $http.post("login", {password: $scope.password, username: $scope.username}).
        success(function (data, status, headers, config) {
            $scope.mainPage = data;
            console.log("successfully logged to login");
        }).error(function (data, status, headers, config) {
            console.log("error in post");
        });
    };
}

これは /login GET HTTP リクエストのレスポンスです:

<div>
    <form class="form-signin" ng-submit="login()">
    <h2 class="form-signin-heading">Please sign in</h2>
    <input type="text" class="input-block-level" placeholder="User name" ng-model="username">
    <input type="password" class="input-block-level" placeholder="Password" ng-model="password">
    <label class="checkbox">
        <input type="checkbox" value="remember-me" ng-model="remember"> Remember me
    </label>
    <button class="btn btn-large btn-primary" type="submit">Sign in</button>
    </form>
</div>
4

1 に答える 1