2017-02-09 16 views
0

我有2個Ajax請求來獲取一些CRM詳細信息,首先我想要獲得所有訂單狀態在系統中爲每個狀態創建一個帶有ID的容器並獲取全部從另一個請求中提取的訂單和將它們放入每個STATUSES ID容器中。將ajax請求合併到一個模板

發現難以遍歷狀態和訂單並相應地放置它們。

代碼

function createOrderStatuses(){ 
    var access_token = BCAPI.Helper.Site.getAccessToken(); 
    var request = $.ajax({ 
     url: "/webresources/api/v3/sites/current/orderstatuses", 
     type: "GET", 
     connection: "keep-alive",  
     contentType: "application/json", 
     headers: _authorization 
    }); 
    request.done(function (msg) { 
     console.log(msg); 
     //var orderStatusesArray = msg[]; 
     for (var i = 0; i < msg.items.length; i++){ 
      var statuses = msg.items[i]; 
      var statusTemplate = '<div class="large-12 columns margin-distributed statusClass" id="'+ statuses.id +'"><h4 class="lato-bold">' + statuses.label + '</h4></div>'; 

     if (statuses.label !== "EXCHANGE FEE PAID"){ 
     $("#ordersContainer").append(statusTemplate); 
     }else{ 
     //$(".orderStatuses").append('<option value="'+ statuses.id +'">' + statuses.label + '</option>'); 
     } 
    }//looping and displaying statuses 

    getOrders(); 

    });//request END 


    function getOrders(){ 

    var access_token = BCAPI.Helper.Site.getAccessToken(); 
    var request = $.ajax({ 
     url: "/webresources/api/v3/sites/current/orders", 
     type: "GET", 
     connection: "keep-alive",  
     contentType: "application/json", 
     headers: _authorization 
    }); 
    request.done(function (msg) { 
     console.log(msg); 
     var containerID = $('.statusClass').each(function(){ $(this).attr('id'); }); 

     for (var i = 0; i < msg.items.length; i++){ 
      var orders = msg.items[i]; 

      var orderTemplate = '<div class="large-12 columns margin-distributed '+ orders.statusTypeId +'"><h5>' + orders.name + '</h5></div>'; 
      var orderTemplateClass = orderTemplate.find('div[class*="'+orders.statusTypeId+'"]'); 

      if (orderTemplateClass === containerID){   
         $(containerID).append(orderTemplate); 
       }// end IF  

    }//looping orders 

    }); 
    }//GET ORDERS END 


} 
createOrderStatuses(); 
+0

你是不是想比較orders.statusTypeId和stasuses.id? –

+0

是的,我基本上想比較,如果orders.statusTypeId與stasuses.id匹配,並將每個div內的訂單與它自己的狀態ID – Skwashy

+0

我有一些錯誤,因爲我試圖在foorloop內運行一個函數,所以我更改爲$。每個響應 – Skwashy

回答

0

您可以選擇與此目標狀態div容器:$("#ordersContainer .statusClass[id="+orders.statusTypeId+"]")

這裏是getOrders()的全碼功能:

function getOrders(){ 

    var access_token = BCAPI.Helper.Site.getAccessToken(); 
    var request = $.ajax({ 
     url: "/webresources/api/v3/sites/current/orders", 
     type: "GET", 
     connection: "keep-alive",  
     contentType: "application/json", 
     headers: _authorization 
    }); 
    request.done(function (msg) { 
     console.log(msg); 

     for (var i = 0; i < msg.items.length; i++){ 
      var orders = msg.items[i]; 

      var orderTemplate = '<div class="large-12 columns margin-distributed '+ orders.statusTypeId +'"><h5>' + orders.name + '</h5></div>'; 


    $("#ordersContainer .statusClass[id="+orders.statusTypeId+"]").append(orderTemplate) 



    }//looping orders 

    }); 
    }//GET ORDERS END 


}