【问题标题】:Using AngularJS ajax to post data to API in sails.js backend使用 AngularJS ajax 将数据发布到sails.js 后端的API
【发布时间】:2015-04-05 01:10:57
【问题描述】:

我是新手,对使用 AngularJS 将表单数据 POST 到sails.js 的 API 有点困惑,但表单无法正常工作,并出现此信息不那么丰富的错误:TypeError: string is not a功能

我想知道可能出了什么问题。我怀疑我使用的 API 在 $http.post() 中是错误的,但我不确定。

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

员工模型:

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>

【问题讨论】:

    标签: ajax angularjs node.js sails.js


    【解决方案1】:

    问题是您将字符串传递给 .success 和 .error 函数,而不是回调函数。 你需要类似的东西

    $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"});
    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      相关资源
      最近更新 更多