2

当我加载主页时,它将在主页/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

-1

代替

<button class="btn btn-large btn-primary" type="submit">Sign in</button>

经过

<button class="btn btn-large btn-primary" type="submit" ng-click="login()">Sign in</button>

或者,更改<button><input type="submit">.

于 2013-09-28T18:04:24.493 回答