メイン ページをロードすると、このページの 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>