0

i AngularJS bin hier, ich versuche, und tun Sie den Code untenAngularJS ng - Wiederholung, ng - Modell auf Eingabetext seltsames Verhalten

var app = angular.module('SomeApp', []); 

app.controller('QuotationController', function($scope) { 

    $scope.init = function(){ 
    $scope.chargableDescription = [""]; 
    $scope.chargablePrice = []; 
    $scope.chargableQuantity = []; 
    $scope.chargableTotal = []; 

    } 

    $scope.chargableInput = function($last){ 

    if ($last) { 
     $scope.chargableDescription.push([""]); 
    } 
    } 
}); 

Im Grunde, was ich versuche, hier zu erreichen, ist die ganze einfügen Gruppe von Eingaben, wenn Benutzer etwas im letzten chargableDescription-Feld eingeben.

 <div class="chargable-group" ng-repeat="item in chargableDescription" > 

      <div class="col-md-3"> 
       <label class="form-control-label" for="l2" id="chargable-label">Chargable Item</label> 
      </div> 

      <div class="col-md-9" id="chargable-header"> 
       <textarea name="chargable[]" class="form-control dynamic chargable" placeholder="Chargable Description" ng-model="chargableDescription[$index]" ng-keypress="chargableInput($last)"> </textarea> 
       <br> 
       <input type="number" class="form-control" step="0.01" name="chargable-price-1" placeholder="Chargable Price" ng-model="chargablePrice[$index]"> 
       <br> 
       <input type="number" class="form-control" name="chargable-quantity-1" placeholder="Chargable Quantity" ng-model="chargableQuantity[$index]"> 
       <br> 
       <input type="number" class="form-control" step="0.01" name="chargable-total-1" placeholder="Chargable Total" readonly ng-model="chargableTotal[$index]" > 
      </div> 

     </div> 

Es funktioniert der Trick jedoch frage ich mich, warum, wenn ich auf dem Text jede Eingabe machen, wird der Cursor einmal ein Zeichen i Eingang verschwunden sein. Wie Sie dieses Verhalten entfernen und was wäre der Faktor, der dieses Verhalten verursacht?

UPDATE:

GELÖST Ich habe ng-model-options = {updateOn: 'Blur'} und es scheint, als ob es das Problem löst

+0

Bitte löschen Sie die Frage, da sie immer unbeantwortet bleibt und die Zeit damit verschwendet wird, wenn sie zu lesen beginnt, um sie zu lösen. Oder schreiben Sie [Gelöst] in den Titel selbst. –

Antwort

0

Es funktioniert für mich https://plnkr.co/IV9t4fhln5v3l81NHaPC

Was ist Ihr Eckige Version?

(function() { 

    'use strict'; 

    var app = angular.module('SomeApp', []); 

    app.controller('QuotationController', function($scope) { 

    $scope.init = function() { 
     $scope.chargableDescription = [""]; 
     $scope.chargablePrice = []; 
     $scope.chargableQuantity = []; 
     $scope.chargableTotal = []; 

    } 

    $scope.chargableInput = function($last) { 

     if ($last) { 
     $scope.chargableDescription.push([""]); 
     } 
    } 

    $scope.init(); 
    }); 


})(); 
+0

Ich kann sehen, dass es auf dem obigen Link funktioniert, aber es funktioniert nicht mit mir. Aber warum fügen Sie $ scope.init() hinzu; nach der Logik? Ist das nicht der Anfangswert? Ich habe ng-model-options = {updateOn: 'blur'} hinzugefügt und es funktioniert einfach nur gut, aber ich frage mich warum. Wissen Sie warum? Vielen Dank für Ihre Antwort und hoffe, Sie können mir erklären, weil ich AngularJS wirklich neu bin. @ Karl San Gabriel –

Verwandte Themen