2016-04-25 156 views
1

我在前端有兩個空的文本框,其中一個用於鍵值,另一個用於添加按鈕和一個提交按鈕。用戶可以單擊添加按鈕以分別添加一對兩個文本框,每個文本框分別代表鍵和值。使用angularjs動態創建鍵值對並將其傳遞給java地圖

用戶可以在文本框中隨意添加任何文本作爲關鍵字和任何文本作爲值。 提交按鈕是提交最終表格。 我想在angularJS中獲取這些數據,並通過post請求將其傳遞給java Map。

具體來說,Java中的Map看起來像這樣轉換爲Json。

{"A":"something","B":"something","C":"something","D":"value"} 

但我不能從前端使用angularJS動態地創建這樣的結構。

+0

爲什麼不呢?發生什麼事? – RafaelTSCS

回答

4

由於您需要映射鍵和值,我不會推薦數組。 我覺得這是你所需要的:

$scope.map={}; 
// Add header data 
$scope.addToMap=function() 
{ 
    $scope.map[$scope.key]=$scope.value; 
    $scope.key=""; //clear the textbox 
    $scope.value=""; //clear the textbox 
}; 

執行addToMap()點擊您的按鈕時。您還可以與非可編輯的文本框的ng-repeat,並運行ng-repeatmap

+0

這是我正在尋找的確切解決方案。非常感謝Dushyant。我沒有權限對此答案進行投票。我希望如果有人能爲我投票這個答案。 – Amit

+0

@Amit,您可以通過點擊左側的勾號選擇它作爲答案。你最終將獲得聲望,並將被允許投票。 :) –

0

試試這個 這裏是工作fiddle

<div ng-controller="MyCtrl"> 
<div ng-repeat="item in items"> 
<input type="text" ng-model="item"> 
</div> 
    <button ng-click="addItem()">Add</button> 
    </div> 

控制器

var myApp = angular.module('myApp',[]); 
myApp.controller('MyCtrl',function($scope){ 
    $scope.items=['item1','item2','item3','item4','item5']; 

    $scope.addItem = function(){ 
    $scope.items.push(''); 
    } 
}) 
+0

這只是添加一個文本框。我需要每行兩個,也都應該與關鍵值對關係連接。 – Amit

0

嘗試下面的代碼創建動態的JSON對象。

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

 
myApp.controller('MyCtrl', ['$scope', function MyCtrl($scope) { 
 
\t $scope.jsonObject = {}; 
 
    
 
    $scope.add = function(){ 
 
    \t $scope.jsonObject[$scope.key] = $scope.value; 
 
    }; 
 
    
 
    $scope.submitForm = function(){ 
 
    \t console.log($scope.jsonObject);  
 
    } 
 
}]);
<div ng-controller="MyCtrl"> 
 
    <form> 
 
    Key: <input ng-model="key"> 
 
    Value: <input ng-model="value"> 
 
    <button ng-click="add()">ADD</button> 
 
    <button ng-click="submitForm()">submit form</button> 
 
    </form> 
 
    
 
    <span>{{jsonObject}}</span> 
 
</div>

+0

感謝Sachin的回答,這對我很有用。它與Dushyant的解決方案非常相似。 – Amit

相關問題