2017-06-12 44 views
0

經與我試圖建立數據的一個問題數組對象,場景是,如果用戶只輸入IdProductName則只能使用或者如果用戶輸入Idproduct Name然後使用兩者。如何獲得這兩個OBJ值和鍵建立POST方法

目前我的JSON只採取其中一種,但不是兩種。使用ID or Name

輸入工作正常,預期的結果是: -

{ 
"Filters": { 

    "complex_filterField": [ 
     { 
     "keyField": "name", 
     "valueField": { 
      "keyField": "like", 
      "valueField": "%aviator%" 
     } 
     } 
    ] 
    } 
} 

,如果兩個編號和名稱輸入填充,然後期望的結果是類似下面的代碼,我在與建築的麻煩。

問題是我怎樣才能把這兩個值構建它像下面?

{ 
    "Filters": { 

    "complex_filterField": [ 
     { 
     "keyField": "name", 
     "valueField": { 
      "keyField": "like", 
      "valueField": "%aviator%" 
     } 
     }, 
     { 
     "keyField": "product_id", 
     "valueField": { 
      "keyField": "like", 
      "valueField": "15%" 
     } 
     } 
    ] 
    } 
} 

Sample working code

回答

1

您循環您的領域,但隨後覆蓋query每次迭代 - 所以你只落得取其最後。

一個簡單的重構:

function LoginController($scope) { 
 

 
    $scope.search = function (param) { 
 
     var queryArray = []; 
 
     for (var keyName in param) { 
 
      if (param[keyName] != undefined && param[keyName] != '' && param[keyName] != null) { 
 
       var queryValue = param[keyName]; 
 
       var queryLabel = keyName; 
 
       var query = { 
 
       "keyField": queryLabel, 
 
       "valueField": { 
 
        "keyField": "like", 
 
        "valueField": '%' + queryValue + '%' 
 
       }} 
 
       queryArray.push(query); 
 
      } 
 
     } 
 

 
     var searchData = { 
 
        "Filters": { 
 
         "complex_filterField": queryArray 
 
        } 
 
       } 
 

 
     console.log('searchData: ', searchData); 
 
       
 
       
 
    }; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script> 
 
<div ng-app ng-controller="LoginController"> 
 
    <div>Hello {{ user.firstName }}</div> 
 
    <input ng-model="param.id" placeholder="id"></input> 
 
    <input ng-model="param.itemName" placeholder="item name"></input> 
 
    <input type="submit" ng-click="search(param)" value="Login"></input> 
 
    <div ng-repeat="login in logins">{{ login }}</div> 
 
</div>

+0

嘿固定它之前,我看到你的答案,有趣,我們有相同的'VAR queryArray' – MrNew