我试图从角度服务发送数据到nodejs后端没有任何事情发生

时间:2016-08-29 02:33:39

标签: angularjs node.js rest http

我已在此附上我的服务功能。我试图向节点后端发送一个简单的数据,但没有任何反应。但是在这个API端点上,事情很好地保存了良好的数据(邮递员)。我确定我在这里错误的角度没有错误触发。 没有提出http请求

App.service('UserServices', function($rootScope, $http) {
  this.AddToInviteList = function(email, cb) {
    var url = $rootScope.api_server_url + "/users/addtoinvitelist";
    $http({
      method: 'POST',
      url: url,
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
      } // set the headers so angular passing info as form data (not request payload)
    }).success(function(data) {
      console.log("email is posted sucessfully" + data);
      cb(data);
    })
  }
})

我的控制器代码就在这里,

App.controller('InviteController', function($scope, $rootScope, $routeParams, $location, UserServices) {
  $scope.AddToInviteList = function(email) {
    UserServices.AddToInviteList(email, function(dataresponse) {
      console.log(dataresponse);
    })
  }
});

我的HTML视图div在下面。

    <div class="tab-content">

        <!--NEWSLETTER FORM-->
                                <div class="panel panel-minimalize">
                                    <h2 class="signin-brand animated-hue"> <i class="fa fa-rocket"></i> MEDICOSHERE</h2>
                                    <div class="panel-body bg-inverse ui-corner-all">
                                        <form action="#">
                                            <div class="form-group">
                                                <label for="subcribeNewsletter" class="control-label">INVITE FORM<br> <small>We are happy to invite you to medicoshere, So please enter your email ID in the below form.</small></label>
                                                <div class="input-group input-group-in input-group-sm">
                                                    <div class="input-group-addon"><i class="fa fa-envelope text-belpet"></i></div>
                                                    <input class="form-control" id="subcribeNewsletter" placeholder="johndoe@mail.com" ng-model="email" required>
                                                    <div class="input-group-btn">
                                                        <button type="submit" class="btn btn-default text-belpet" ng-click="AddToInviteList(email)"><strong>OK</strong></button>
                                                    </div>
                                                </div>
                                            </div><!-- /.form-group -->
                                        </form><!-- /form -->
                                    </div><!-- /.panel-body -->
                                </div><!-- /.panel -->
                                <!--/END NEWSLETTER FORM-->
                            </div><!-- /.cols -->

</main>

1 个答案:

答案 0 :(得分:0)

获得有关您的问题的更多信息会不会很好,但我已经看到了一些潜在的问题。

首先,我希望App变量(App.service)是角度主模块的一个实例。

另外,我相信你必须在服务声明的乞讨或结束时返回一个对象中的函数。这样,当你从控制器调用它时,它将按预期工作。

所以我认为它应该是这样的:

var App = angular.module('myApp');
App.service('UserServices', function($rootScope, $http) {
 this.AddToInviteList = function(email, cb) { 
       var url = $rootScope.api_server_url + "/users/addtoinvitelist"; 
       $http({ 
           method: 'POST', 
           url: url,
           headers: { 'Content-Type': 'application/x-www-form-urlencoded '
        } 
    // set the headers so angular passing info as form data (not request payload) })
    .success(function(data) { 
          console.log("email is posted sucessfully" + data); 
          cb(data);
   }) 
}

  return {
         AddToInviteList:AddToInviteList
   }
})

抱歉,从智能手机上写下了糟糕的缩进信息。

希望它有所帮助!

修改

另外,您确定已将文件添加到index.html吗? :d

要检查的另一件事

您可能想要检查您的路由是否正常。也许您没有将该视图与正确的控制器相关联。包含或不包含服务文件可能是您没有收到任何错误的原因之一。