如何从两个输入添加角度ng模型值

时间:2015-08-12 16:21:14

标签: javascript angularjs mongodb express

我有一个角度应用程序。 如何从两个或多个输入中添加一个ng模型值。 这是我的意见:

<input type="text" class="form-control input-md" name="type" ng-model="flat.flatData.type" placeholder="Flat type" >

在这种情况下所有工作正常,但我想添加更多的输入。在这个模型中我想要一个数组。 结果我想要这样的东西:

  • 第一个输入值= type1
  • 第二个输入值= type2
  • 他们的输入值= type3

等等。 最后我想在这个模型中有一个数组[type1,type2,type3]

1 个答案:

答案 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>

http://plnkr.co/edit/8J7X0p?p=info