Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用angularjs动态创建键、值对并将其传递给java映射_Java_Angularjs - Fatal编程技术网

使用angularjs动态创建键、值对并将其传递给java映射

使用angularjs动态创建键、值对并将其传递给java映射,java,angularjs,Java,Angularjs,我在前端有两个空文本框,一个是键,另一个是值,一个是添加按钮,一个是提交按钮。用户可以点击添加按钮,再添加一对分别代表键和值的两个文本框 用户可以在文本框中自由添加任何文本作为键和任何文本作为值。 “提交”按钮用于提交最终表单。 我想在angularJS中获取这些数据,并通过post请求将其进一步传递给JavaMap 具体来说,java中的映射在转换为Json时如下所示 {"A":"something","B":"something","C":"something","D":"value"}

我在前端有两个空文本框,一个是键,另一个是值,一个是添加按钮,一个是提交按钮。用户可以点击添加按钮,再添加一对分别代表键和值的两个文本框

用户可以在文本框中自由添加任何文本作为键和任何文本作为值。 “提交”按钮用于提交最终表单。 我想在angularJS中获取这些数据,并通过post请求将其进一步传递给JavaMap

具体来说,java中的映射在转换为Json时如下所示

{"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"];