sql >> Databasteknik >  >> NoSQL >> MongoDB

hur man lägger till ng-modell i dynamiskt skapade textfält

Problemet är att dina dynamiskt tillagda inmatningsfält inte har en klickhändelse när du lägger till dem med jQuery. Lägger till ng-click är inte tillräckligt. Du måste använda $compile för att låta angular analysera detta element.

Det mycket smartare sättet är dock att inte använda jQuery alls och låta fälten genereras av angular själv 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 det här exemplet kan du lägga till valfritt antal element och binda ng-click händelser för dem. De kommer att fungera utanför lådan, sedan analyseras med vinkel. Dina addValues funktion måste nu helt enkelt använda vm.fields för att faktiskt lägga till värdena till databasen.



  1. Hur man korrekt itererar genom en stor json-fil

  2. sparar bild till mongodb

  3. Vilken är den mest mogna MongoDB-drivrutinen för C#?

  4. Mongoid Query DB av Virtual Attribute