微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 从角度js表单发布数据时出错

我有一个angularJS表单,它将数据发布到scalatra servlet.当表单被提交时,我无法在我的scalatra servlet中获得任何形式的参数.

以下是我的代码

AngularJS

$scope.createuser = function() {
    $http.post('/createuser',{name:$scope.name,email:$scope.email,pwd:$scope.pwd}).
        success(function(data, status, headers, config) {
            alert("success " + data)
        }).
        error(function(data, status, headers, config) {
            alert("failure =>" +data)
        });
 };         });
 };     

HTML表单

<form ng-controller="UserController">
            <legend>Create User</legend>

            <label>Name</label>
            <input type="text" id="name" name="name" ng-model="name" placeholder="User Name">

            <label>Email</label>
            <input type="text" id="email" name="email" 
                ng-model="email" placeholder="ur email here">

            <label>Password</label>
            <input type="text" id="pwd" name="pwd" 
                ng-model="pwd" placeholder="ur own pwd here">

            <button ng-click="createuser()" class="btn btn-primary">Register</button>
        </form>

Scalatra Servlet

post("/createuser") {
    println(params("name")) 
}

当我运行应用程序并尝试从表单提交时,我收到此错误

Error 500 key not found: name (obtained from firebug lite)

如果我遗漏某些东西或其他任何方式,请告诉我

解决方法:

两个变化:

>使用’ng-submit’事件.
>将ng-models放在一个对象中,这样你就可以在帖子中发送对象.

HTML:

<div ng-controller="UserController">
  <form ng-submit="createuser()">
    <input type="text" ng-model="user.name">
    ...
    <input type="email" ng-model="user.email">
    ...
  </form>
</div>

JS:

function UserController($scope, $http) {
  $scope.user = {};
  $scope.createuser = function() {
    $http.post('/createuser', $scope.user);
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐