我一直在使用AngularJS并在我的项目中集成了JQuery库.
我正在使用JQuery的$.each()函数来遍历我的类.
我想从中创建一个对象数组,就像下面的格式一样:
[
{"invoice_no":"value1","brand":"value2","model":"value3"},{"invoice_no":"value1",]
HTML
JS控制器
$scope.saveData = function(){
var arrayOFProducts = [];
var object = {};
angular.element('.panels').each(function(){
$(this).find('.form-control').each(function(){
var key = $(this).attr('name');
var value = $(this).val();
object [key] = value;
});
arrayOFProducts.push(object);
});
console.log(arrayOFProducts);
}
这里的主要问题是我为数组中的所有json对象获取相同的值.似乎只有最后一个输入值被创建为一个对象,并且它将它推送到数组5次.
最佳答案
问题是因为您需要在外循环的每次迭代后重置您追加到空状态的对象.试试这个:
$scope.saveData = function() {
var arrayOFProducts = [];
angular.element('.panels').each(function() {
var obj = {}; // note this moved to here
$(this).find('.form-control').each(function() {
var key = $(this).attr('name');
var value = this.value;
obj[key] = value;
});
arrayOFProducts.push(object);
});
console.log(arrayOFProducts);
}