使用AngularJS ajax将数据发布到sails.js后端的API

我是新来的,并且对使用AngularJS将表单数据发布到sails.js的API有点困惑,但是这个表单不起作用,并且这个没有那么明显的错误: TypeError:string不是一个函数

我想知道什么可能是错的。 我怀疑我使用的API是错误的$http.post() ,但我不知道。

我有以下称为regEmployee() Employee模型和EmployeeController方法:

员工模式:

 module.exports = { attributes: { name:{ type:"string", required:true, minLength: 2 }, empnum:{ type:"string", required:true, unique: true }, email:{ type:"email", required:true, unique: true } } }; 

regEmployee()方法:

 $scope.regEmployee = function() { $http.post("http://localhost:1337/employee/create", {name: $scope.employee.name, empnum: $scope.employee.number, email: $scope.employee.email} ).success($scope.message = "successful registration" ).error($scope.message = "failed registration"); } 

html中的表单:

 <form name="newEmp" ng-submit="regEmployee()" novalidate> <div class="form-group-lg"> <label for="name">Employee Name: </label> <input type="text" id="name" placeholder="Employee Name" ng-model="employee.name" name="name" ng-required="true"> </div> <div class="form-group-lg"> <label for="number">Employee Number: </label> <input type="number" id="number" placeholder="Employee Number" ng-model="employee.number" name="number" ng-required="true"> </div> <div class="form-group-lg"> <label for="email">Employee Email: </label> <input type="email" id="email" placeholder="Employee Email" ng-model="employee.email" name="email" ng-required="true"> </div> <div class="form-group"> <button type="submit" class="btn btn-primary">Submit</button> </div> </form> 

问题是你正在传递string到你的.success和.error函数,而不是callback函数。 你需要类似的东西

 $scope.regEmployee = function() { $http.post("http://localhost:1337/employee/create", {name: $scope.employee.name, empnum: $scope.employee.number, email: $scope.employee.email} ).success(function() {$scope.message = "successful registration";}) ).error(function() {$scope.message = "failed registration"}); }