【问题标题】:Submit button do not work in angularjs when I use templates当我使用模板时,提交按钮在 angularjs 中不起作用
【发布时间】:2013-09-29 02:04:24
【问题描述】:

当我加载主页时,它将在主页div的ng-view内加载此页面的第三部分[/login GET HTTP request]。我的问题是当我点击提交按钮时,它不会提交给定的页面并在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>

【问题讨论】:

  • 你在页面的正确位置看到了 html 吗?它在正确的 div 中并且格式正确吗?
  • @FooL 是的,我没看错
  • 如果您将ng-click="login()" 放在按钮中会怎样?

标签: javascript html angularjs


【解决方案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>

或者,将&lt;button&gt; 更改为&lt;input type="submit"&gt;

【讨论】:

  • 这不是解决方案,我还有问题
猜你喜欢
  • 2017-03-13
  • 1970-01-01
  • 1970-01-01
  • 2016-12-12
  • 1970-01-01
  • 2015-12-20
  • 2022-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多