sql >> Database teknologi >  >> NoSQL >> MongoDB

hvordan man tilføjer ng-model til dynamisk oprettede input tekstfelter

Problemet er, at dine dynamisk tilføjede inputfelter ikke har en klikhændelse, når du tilføjer dem med jQuery. Tilføjer ng-click er ikke nok. Du skal bruge $compile for at lade vinkelparse dette element.

Den meget smartere måde er dog slet ikke at bruge jQuery og lade felterne blive genereret af angular selv med ng-repeat .

angular
  .module('app', [])
  .controller('dynamicFieldsController', dynamicFieldsController);

dynamicFieldsController.$inject = ['$scope'];

function dynamicFieldsController($scope){
  var vm = this;
  vm.numOfFields = 0;
  vm.fields = [];
  vm.add = function() {
    for (var i = 0; i < vm.numOfFields; i++) {
        var index = vm.fields.length;
        vm.fields.push(index);
    }
  }
}
input{
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='app' ng-controller='dynamicFieldsController as vm'>
  <input placeholder='num of fields' ng-model='vm.numOfFields'>
  <button ng-click='vm.add()'>add</button>
  <input type='text' ng-repeat='field in vm.fields' value='{{ field }}'>
</div>

I dette eksempel kan du tilføje et hvilket som helst antal elementer og binde ng-click begivenheder for dem. De vil arbejde ud af boksen, da parset med kantet. Dine addValues funktion skal nu blot bruge vm.fields for rent faktisk at tilføje værdierne til databasen.



  1. mongodb få optælling uden at gentage find

  2. Pymongo returnerer kun værdier som liste

  3. mongodb-klynge med ELB-endepunkt som dns

  4. Mongo-forespørgsel for at sortere efter særskilt antal