我有一个角度应用程序。 如何从两个或多个输入中添加一个ng模型值。 这是我的意见:
<input type="text" class="form-control input-md" name="type" ng-model="flat.flatData.type" placeholder="Flat type" >
在这种情况下所有工作正常,但我想添加更多的输入。在这个模型中我想要一个数组。 结果我想要这样的东西:
等等。 最后我想在这个模型中有一个数组[type1,type2,type3]
答案 0 :(得分:2)
编辑: 好吧,我承认我以前没有得到你的问题,但我想我现在就做。这就是你想要做的事情:
HTML
<div ng-repeat="(key, item) in vm.numbers track by $index">
<input type="text" ng-model="item" ng-change="vm.updateSum()">
</div>
<button ng-click="vm.addInput()">+</button>
<br><br>
array:
<div>{{vm.numbers}}</div>
sum:
<div>{{vm.sum}}</div>
JS:
var vm = this;
vm.numbers = [99,2,3,4,5,6,7,8];
vm.sum = 0;
vm.updateSum = function() {
for (var i = 0; i < vm.numbers.length; i++) {
vm.sum = vm.sum + vm.numbers[i];
}
}
vm.updateSum();
vm.addInput = function(){
vm.numbers[vm.numbers.length] = 0;
}
http://plnkr.co/edit/XiI8Sc?p=preview
老答案:这将是一个指令的主要用例,或者可能是一些指令,基于您需要的流程。类似的用例非常常见并且有很多答案,表单需要比较两个字段并确保它们相同(例如&#34;键入两次密码&#34;用于注册)。我建议看那个。
与此同时,你会想要以某种方式嘲笑这些功能,所以这里有一个通过$ watch
工作的基础知识。JS
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
var vm = this;
$scope.$watch('vm.one', function() {
vm.three = parseInt(vm.one) + parseInt(vm.two);
console.log('one change');
});
$scope.$watch('vm.two', function() {
vm.three = parseInt(vm.one) + parseInt(vm.two);
});
});
HTML
<body ng-controller="MainCtrl as vm">
<input type="text" ng-model="vm.one"><br><br>
<input type="text" ng-model="vm.two"><br><br>
<input type="text" ng-model="vm.three">
<div>{{vm.one}}</div>
<div>{{vm.two}}</div>
<div>{{vm.three}}</div>
</body>