Javascript Angularjs使用一个ng模型将多个输入从HTML传递到控制器

Javascript Angularjs使用一个ng模型将多个输入从HTML传递到控制器,javascript,html,angularjs,controller,Javascript,Html,Angularjs,Controller,所以我在html中有一些输入文本框,我想将它们发送到我的控制器中,并将它们添加到一个对象中。让我困惑的是,如何仅使用一个ng模型传递多个值。到目前为止,这就是我在html中读取所需输入数量的内容: <div ng-repeat = "parameter in selectedMO.parameters"> <label> Value for {{parameter.name}} </label> <input type="text" ngmo

所以我在html中有一些输入文本框,我想将它们发送到我的控制器中,并将它们添加到一个对象中。让我困惑的是,如何仅使用一个ng模型传递多个值。到目前为止,这就是我在html中读取所需输入数量的内容:

<div ng-repeat = "parameter in selectedMO.parameters">
   <label> Value for {{parameter.name}} </label>
   <input type="text" ngmodel="value"/>
</div>

我对angularjs很陌生,网上的答案到目前为止对我来说还不起作用

我相信您会希望利用
跟踪$index
ngRepeat
相关的信息,然后将该值与
$scope
上定义的
数组相关联

您的代码块可能最终看起来像:

<div ng-repeat = "parameter in selectedMO.parameters track by $index">
   <label> Value for {{parameter.name}} </label>
   <input type="text" ng-model="values[$index]"/>
</div>
希望这对你有用

解决方案二:

另一种方法(可能更干净)是利用您正在迭代的同一对象:

<div ng-repeat = "parameter in selectedMO.parameters">
   <label> Value for {{parameter.name}} </label>
   <input type="text" ng-model="parameter.value"/>
</div>

去上大学试试吧,但它应该对你有用!正如你所看到的,它稍微干净一点

ngmodel=“value[$index]”这将为您提供一个值数组$索引是由ng repeat创建的。@SantiagoEsquivel-这里有一个非常快速和简单的plnkr,我把它放在一起,希望能演示它是如何工作的:这是有效的,谢谢,我知道这是一个简单的解决方案,我只是不确定如何执行它,也可以将值添加到具有value和parameter.name字段的对象中,而不是使用数组吗?@SantiagoEsquivel-查看我在那里给出的编辑。最正确的说法是不需要数组。实际上,将值与每个迭代的
参数
对象相关联很可能是一个更好的标准。我还更新了plnkr以显示您请求的更改!我非常感谢你的详细答复和后续行动。
angular.module('app.runBehaviorOper', [])
   .controller('runBehaviorOper', [ 'discoveryService','$scope', '$route',  
      function( discoveryService, $scope, $route) {

     $scope.values = []; // This will contain all the input values

     $scope.getBehaviorExec = function() { //this is called with the submit
      // button in the html code

        discoveryService.getBehaviorExec({ 
           oid:              $scope.oid,
           parameters:       $scope.values // I'm assuming this is where you would use the various input values

        });

     };

  }
]);
<div ng-repeat = "parameter in selectedMO.parameters">
   <label> Value for {{parameter.name}} </label>
   <input type="text" ng-model="parameter.value"/>
</div>
angular.module('app.runBehaviorOper', [])
   .controller('runBehaviorOper', [ 'discoveryService','$scope', '$route',  
      function( discoveryService, $scope, $route) {

     $scope.getBehaviorExec = function() { //this is called with the submit
      // button in the html code

        discoveryService.getBehaviorExec({ 
           oid:              $scope.oid,
           parameters:       $scope.selectedMO.parameters // you will still need to access each $scope.selectedMO.parameters value since the parameters is now not just an array of input values

        });

     };

  }
]);