Javascript Angularjs使用一个ng模型将多个输入从HTML传递到控制器
所以我在html中有一些输入文本框,我想将它们发送到我的控制器中,并将它们添加到一个对象中。让我困惑的是,如何仅使用一个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
<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
});
};
}
]);