2016-02-28 112 views
-2

我嘗試後像(電子郵件,角色,家庭)使用angularjs我的服務器的數據,但是當我運行該程序就說明我error這樣其如下...

ReferenceError: transformRequestAsFormPost is not defined 
    at n.register [as send] (sectn.js:7) 
    at sectn.js:72 
    at n.$eval (angular.js:14466) 
    at n.$apply (angular.js:14565) 
    at register (sectn.js:71) 
    at HTMLInputElement.onclick (get1.html:29) 

清除我的錯誤我應該在我的程序中添加什麼。然後我的腳本 是

var app = angular.module('mainApp', []); 

app.controller('register', function ($scope, $http) { 

    $scope.send = function register() { 
     alert("test"); 
     $http.post("http://52.77.16.197:8000/subscribe/", transformRequest = transformRequestAsFormPost, data = JSON.stringify({ email: $scope.email, role: $scope.role, home: $scope.home })) 
      .success(function (response) { 
       alert("hi"); 
       $scope.persons = data; 
      }).error(function (response) { 
       if (response.message == "already_subscribed") { 
        alert("already_subscribed"); 
       } 
       else { 
        alert("error"); 
       } 
      }); 
    } 

}); 

    angular.module('mainApp') 
    .factory("transformRequestAsFormPost", 
     function() { 
      function transformRequest(data, getHeaders) { 
       var serializeData = function (obj, result, keyName) { 
        if (typeof (keyName) === 'undefined') { 
         keyName = null; 
        } 
        var cloneObj = JSON.parse(JSON.stringify(obj)); 
        $.each(cloneObj, function (idx, v) { 
         if (v instanceof Object) { 
          var newIdx = encodeURIComponent(idx); 
          var newKeyName = keyName === null ? newIdx : keyName + "[" + newIdx + "]"; 
          serializeData(v, result, newKeyName); 
         } 
         else { 
          var key = encodeURIComponent(idx); 
          if (keyName !== null) { 
           key = keyName + "[" + key + "]"; 
          } 
          result.push(
           key + "=" + encodeURIComponent(v) 
           ); 
         } 
        }); 
       }; 
       var result = []; 
       var headers = getHeaders(); 
       headers["Content-type"] = "application/x-www-form-urlencoded; charset=utf-8"; 
       serializeData(data, result); 
       return result.join("&"); 
      } 
      return (transformRequest); 

     }); 

app.config(['$httpProvider', function ($httpProvider) { 
    $httpProvider.defaults.useXDomain = true; 
    //$httpProvider.defaults.withCredentials = true; 
    delete $httpProvider.defaults.headers.common["X-Requested-With"]; 
    $httpProvider.defaults.headers.common["Accept"] = "application/json"; 
    $httpProvider.defaults.headers.common["Content-Type"] = "application/json"; 

} 
]); 
function register() { 
    alert("submit"); 
    var scope = angular.element(document.getElementById("reg")).scope(); 
    scope.$apply(function() { 
     scope.send(); 
    }); 
} 
+3

這個問題可以真正使用更好的(和更多的sp ecific)title .... –

+0

錯誤的部分你不明白嗎?如果你不注入它......它沒有被定義 – charlietfl

+0

似乎你所需要的只是使用內置的序列化器並將適當的參數傳遞給'$ http.post' – charlietfl

回答

-1

您要使用廠家服務作爲一個函數,而這個服務功能本身是匿名的

你的函數必須是這種格式

(function(data, headersGetter, status))

閱讀this =>轉換請求和響應