AngularJS ng - 重复,ng - 输入文本的模型 奇怪的行为



我是AngularJS的新手,我尝试执行下面的代码

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([""]);
     }
   }
});

基本上,我在这里要实现的是当用户在最后一个可字符描述字段上输入内容时插入整个输入组。

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

它确实可以解决问题,但是,我想知道为什么当我在文本区域进行任何输入时,一旦我输入字符,光标就会消失。如何消除这种行为,导致这种行为的因素是什么?

更新:

解决我添加了 ng-model-options = { updateOn : 'blur' },似乎它解决了这个问题

它对我有用 https://plnkr.co/IV9t4fhln5v3l81NHaPC

你的 Angular 版本是什么?

(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();
  });

})();

最新更新