0

我是新来AngularJS,我尝试做以下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([""]); 
    } 
    } 
}); 

基本的代码,我想在这里实现的是插入整个用户在最后一个chargableDescription字段上输入内容时的输入组。

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

它的伎俩,但是,我不知道为什么,当我做textarea的任何输入,将光标一次,我输入一个字符了。 如何消除此行为以及导致此行为的因素是什么?

UPDATE:

解决 我加了NG-模型选项= {updateOn: '模糊'}和它看起来像它解决了问题

+0

请删除该问题,因为它总是会显示为未答复,否则当他们开始阅读时会浪费任何人的时间以解决问题。否则,在标题本身写[Solved]。 –

回答

0

它为我https://plnkr.co/IV9t4fhln5v3l81NHaPC

你叫什么角度版本?

(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

我可以看到它正在处理上面的链接,但它不适用于我。 但是为什么你添加$ scope.init();之后的逻辑?这不是刷新初始值吗?我添加了ng-model-options = {updateOn:'blur'},它工作得很好,但我很好奇为什么。 你知道为什么吗? 谢谢你的回答,并希望你能向我解释,因为我对AngularJS真的很陌生。 @Karl San Gabriel –