将数据推送到对象AngularJS中
Push data into object AngularJS
我有几个复选框,你可以点击。对于您单击的每个复选框,与该复选框相连的ID将被推入数组:
HTML:<tr ng-repeat="info in test">
<td>{{info.stracka}}</td><td>{{info.tid}}</td>
<td><input type="checkbox" id="{{info.id}}" class="checkboxfisk" ng-click="testa(info.id)">
</tr>
控制器:
$scope.testa = function(id) { //När vi klickar i de olika checkboxarna, så fyllas arrayen med dessa
$scope.checkboxes.push(id);
console.log($scope.checkboxes);
};
之后,我应该发送这个数组包含ID到我的后端。不过,我想把这个Id发送到Object中,而不是数组中。我如何像上面那样将数据"推送"到对象中?
不能将数据推入对象。把对象看作键值对的集合。对于要存储到对象中的每个值,都需要一个键。这就是为什么我问你的服务器端对象。
因此,在您的情况下,在将数据存储到对象之前,我需要一个键。因此,我必须像这样做
var testa = function(id){
checkbox[id]=id;
}
这段代码肯定会将键存储在对象中,但是看看这个。
Object {5: 5, 6: 6}
这就是值的实际存储方式。
如果你使用数组,你的工作将被简化了很多在服务器端。
我不知道为什么你需要,但一个可能的解决方案是为复选框添加名称
<input type="checkbox" id="{{info.id}}" class="checkboxfisk" ng-click="testa(info.id, 'UNIQUE_NAME')">
init复选框到对象
$scope.checkboxes = {};
then modify your function
$scope.testa = function(id, name) {
$scope.checkboxes[name] = id;
console.log($scope.checkboxes);
};
虽然不能完全回答你关于"push "的问题-因为你不能push到对象,你可以在发送它之前使用this将数组转换为对象。
function toObject(arr) {
var rv = {};
for (var i = 0; i < arr.length; ++i)
if (arr[i] !== undefined) rv[i] = arr[i];
return rv;
}
在您的示例中,您将执行如下操作
$scope.checkboxesObject = toObject($scope.checkboxes);
然后发送这个新的$scope.checkboxesObject。
然而,确保你真的"应该"把它作为一个对象发送到后端。
相关文章:
- AngularJs指令,该指令创建内部有数据对象的新指令
- AngularJS&JSON-从Previous&下一个对象
- 遍历AngularJs中的对象
- Angularjs:空对象,当只有一次点击时
- Javascript/AngularJs-如何用另一个数组中的对象填充数组
- AngularJS:如何用同一对象的另一个属性访问一个属性
- 在禁用ng的情况下搜索JSON对象(AngularJS)
- 将数据推送到对象angularjs
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 用于对象AngularJs中包含的所有字段和数组的deepCopy
- 对于返回 1 个对象 Angularjs
- 使用内部数组遍历数组并创建新对象 - AngularJS
- 向json对象angularjs添加一个数组
- 如何删除数组中使用过滤器的对象?AngularJS
- 如何将密钥分配给对象Angularjs
- 将数据推送到对象AngularJS中
- 在导入的JSON对象AngularJS中获取一个数组
- 返回$rootScope函数中的对象(AngularJS)
- 如何遍历这个 Json 对象(angularJS)
- 按属性排序数组中的javascript对象(angularjs过滤器)