在angularjs中从$ scope发送$ http.post中的动态数据

时间:2013-11-18 18:10:37

标签: javascript angularjs pyramid

我的模板可以在http://goo.gl/xEttgl找到。我通过将它声明为全局变量

来硬编码postData
var postData = {'result': '27'};
app.factory('mypostService', function($http) {
return {
 postFooOldSchool: function() {
   $http.post('/angularresult', JSON.stringify(postData)
   ).success(function(data, status, headers){

   }).error(function(data, status, headers){

   });
  }
 }
});
app.controller('StartUpController', function($scope, $http, myService, mypostService) {
     $scope.upvotes = 0;
     $scope.serverupvotes = 0;
     $scope.increase = function(){
             $scope.upvotes = $scope.upvotes + 1;
     };
     mypostService.postFooOldSchool(function(data) {

     });
     myService.getFooOldSchool(function(data) {
            $scope.result = data;
     });
  });

但我想要做的是从StartUpController里面的$ scope动态发送postData,即假设我点击upvote按钮,我想在POST中发送$ scope.upvotes的当前值并将其显示在结果中。

1 个答案:

答案 0 :(得分:0)

我通过使用工厂过度复杂化问题,我找到了一个简单的解决方案,而不是使用POST工厂,我可以直接从Controller发送$ http.post请求。样本解决方案如下

$scope.increase = function(){
    $scope.upvotes = $scope.upvotes + 1;
            var x = $scope.upvotes;
            alert(x)
            var postObject = {'result': x};
            $http.post('/angularresult', JSON.stringify(postObject)).success(function(data){
            });
            myService.getFooOldSchool(function(data) {
               $scope.result1 = data;

     });
     };