javascript - 使用 AngularJS 将多个输入的值从 ng-repeat 推送到数组中

标签 javascript angularjs arrays

我有以下数组:

$scope.variations = [
    {'nom':'',
     'preu':0,
     'grams':''
    },
    {'nom':'',
     'preu':0,
     'grams':''
    },
    {'nom':'',
     'preu':0,
     'grams':''
    }
];

我将它显示在前端,如下所示:

<div ng-repeat="vari in variations">
  <input type="text" class="inputmodal" ng-model="varinom">
  <input type="text" class="inputmodal" ng-model="varipreu">
  <input type="text" class="inputmodal" ng-model="varigrams">
</div> 

一旦我将 3 个输入填充到数组的所有 3 个项目中,我就会尝试将它们中的每一个插入另一个数组,如下所示:

<a ng-click="test()">TEST</a>

还有 JS:

 $scope.test = function(){
   $scope.singleorder = [];
   for(var i = 0; i < $scope.variations.length; i++)
     $scope.singleorder.push({
       'nom': $scope.variations[i].varinom,
       'grams': $scope.variations[i].varigrams,
       'preu': $scope.variations[i].varipreu,
     });

  console.log($scope.singleorder);
};     

在控制台中的结果中,控制台中有 3 个数组,但每个对象的值未定义。

我错过了什么?

最佳答案

您已正确设置ngModel。使用引用变量 vari 就像

<div ng-repeat="vari in variations">
  <input type="text" class="inputmodal" ng-model="vari.nom">
  <input type="text" class="inputmodal" ng-model="vari.preu">
  <input type="text" class="inputmodal" ng-model="vari.grams">
</div> 

并使用

 $scope.singleorder.push({
   'nom': $scope.variations[i].nom,
   'grams': $scope.variations[i].grams,
   'preu': $scope.variations[i].preu,
 });

关于javascript - 使用 AngularJS 将多个输入的值从 ng-repeat 推送到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42461305/

相关文章:

arrays - 对象数组中的最大值

javascript - 将对象数组转换为已排序的数组数组

javascript - Angular 超时队列

javascript - jQuery .click() 事件不起作用。两个中的一个正在工作,另一个没有

html - 我的侧边栏滚动条不工作

javascript - Chrome Webstore 内联安装与 AngularJS

我可以将红黑树表示为数组吗?

c - C中的结构定义

javascript - 如何根据用户输入用 JavaScript 启动字幕?

javascript - 通过检查元素阻止 iframe src 更改?