簡體   English   中英

如何將數據從Angular發布到Web API,以便發送具有相同數據的電子郵件(無數據庫)

[英]How to POST data from Angular to Web API in order to send email with same data (no database)

用戶添加項目->將模型數據推送到空對象以創建訂單。 從...開始:

$scope.Order = {
    details:{},
    type1: [],
    type2: [],
    type3: [],
};

然后:

$scope.addType1 = function ()
        $scope.Order.type1.push({
            name: $scope.addType1.name,
            price: $scope.addType1.price
        });

其次是剩余的類型。

我添加了一個WebApi項目(因此現在有兩個項目),並且在API中創建了相同的模型。

我需要做的:將數據從Angular發布到WebAPI,以便可以發送包含訂單數據的電子郵件。

我熟悉Angular中的$ Http方法,但是不確定如何檢查數據是否已傳輸到API,也不確定API控制器需要什么。 我在服務器端代碼方面經驗不足,因此可以提供任何幫助。

另外,如果您需要更多信息,請告訴我,我可以進一步解釋。

 var app = angular.module('myApp', ['ui.bootstrap', 'angularUUID2']);

app.controller('myCtrl', ['$scope', '$http', '$q', 'uuid2', function      ($scope, $http, $q, uuid2) {

$scope.order = {
    details: {},
    type1: [],
    type2: []
    };

    $scope.addOrderDetails = function () {

        $scope.addOrderDetails.orderId = uuid2.newguid();

        $scope.order.details = $scope.addOrderDetails;

        };

    $scope.addType1 = function () {
        $scope.order.type1.push({
            xxx: $scope.addType1.xxx,
            yyy: $scope.addType1.yyy,
            zzz: $scope.addType1.zzz
        });
    };

    $scope.addType2 = function () {
                $scope.order.type2.push({
                    xxx: $scope.addType2.xxx,
                    yyy: $scope.addType2.yyy,
                    zzz: $scope.addType2.zzz
                });
            };

 var deferred = $q.defer();

    var url = 'http://localhost:xxxxxx/api/order';

    var data = $scope.order;


    $scope.submitOrder = function () {
        $http.post(url, data).success(function (response) {
            console.log(response);
            deferred.resolve(response)
        }).error(function (error) {
            console.log(error);
            deferred.reject(error)
        });
        return deferred.promise;   
    };
}]);

這是OrderController Post方法:

[HttpPost]
    public Order Post([FromBody]Order model)
    {
        return model;
    }

那里有$ http服務的文檔,該文檔允許POST和GET。

https://docs.angularjs.org/api/ng/service/ $ http

所以:

$http({
  method: 'GET',
  url: '/someUrl'
}).then(function successCallback(response) {
    // this callback will be called asynchronously
    // when the response is available
  }, function errorCallback(response) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
  });

基本上,如果響應是成功響應(服務器響應為肯定),則執行回調。 失敗也一樣。

uksz是對的!

只是想展示您將如何發布數據

var url = your url to post to here e.g 'www.somedomain.com/orders';

var data = put your data object here e.g. $scope.order;  

$http.post(url,data).success(function(response) {
                 console.log(response);
               }).error(function(error) {
                 console.log(error);
               });

您通常希望在這種情況下實現一個promise,您可以這樣做(只需確保在依賴項中包括$ q庫)

var deferred = $q.defer()

var url = your url to post to here e.g 'www.somedomain.com/orders';

var data = put your data object here e.g. $scope.order;  

$http.post(url,data).success(function(response) {
                 console.log(response);
                 deferred.resolve(response)
               }).error(function(error) {
                 console.log(error);
                 deferred.reject(error)
               });
               return deferred.promise

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM