使用angularjs动态创建键、值对并将其传递给java映射
我在前端有两个空文本框,一个是键,另一个是值,一个是添加按钮,一个是提交按钮。用户可以点击添加按钮,再添加一对分别代表键和值的两个文本框 用户可以在文本框中自由添加任何文本作为键和任何文本作为值。 “提交”按钮用于提交最终表单。 我想在angularJS中获取这些数据,并通过post请求将其进一步传递给JavaMap 具体来说,java中的映射在转换为Json时如下所示使用angularjs动态创建键、值对并将其传递给java映射,java,angularjs,Java,Angularjs,我在前端有两个空文本框,一个是键,另一个是值,一个是添加按钮,一个是提交按钮。用户可以点击添加按钮,再添加一对分别代表键和值的两个文本框 用户可以在文本框中自由添加任何文本作为键和任何文本作为值。 “提交”按钮用于提交最终表单。 我想在angularJS中获取这些数据,并通过post请求将其进一步传递给JavaMap 具体来说,java中的映射在转换为Json时如下所示 {"A":"something","B":"something","C":"something","D":"value"}
{"A":"something","B":"something","C":"something","D":"value"}
但是我无法使用angularJS从前端动态创建这样的结构。因为您需要映射键和值,所以我不推荐使用数组。 我想这就是你需要的:
$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
,并在map
上运行ng repeat
这是工作票
尝试以下代码来创建动态JSON对象
var myApp=angular.module('myApp',[]);
myApp.controller('MyCtrl',['$scope',函数MyCtrl($scope){
$scope.jsonObject={};
$scope.add=函数(){
$scope.jsonObject[$scope.key]=$scope.value;
};
$scope.submitForm=function(){
log($scope.jsonObject);
}
}]);代码>
关键:
价值:
添加
提交表格
{{jsonObject}
检查这个插销
为什么不呢?发生了什么?这只添加了一个文本框。我每行需要两个,而且它们都应该与键值对关系相连接。这正是我所寻找的解决方案。非常感谢Dushyant。我无权投票赞成这个答案。我希望有人能为我投票支持这个答案。@Amit,你可以点击左边的勾号选择它作为答案。你最终会赢得声誉,并被允许投票支持。:)谢谢Sachin的回答,这对我很有效。它与Dushyant的解决方案非常相似。
<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('');
}
})
$scope.name = {"A":"something","B":"something","C":"something","D":"value"};
$scope.example = $scope.name["A"];