角度修剪输入值

时间:2015-10-12 12:32:07

标签: javascript angularjs

我在ng-model和input元素方面遇到了一些问题。请看看这个plunker:http://plnkr.co/edit/PJCv1AsPns1cxuSPTZiU

我的观点是当我编辑输入值并在开头和结尾添加一些空格时。

    some text    

然后点击saveinputValue修剪空白区域(并且它可以),但是如果我再次编辑它,那么"之前的"输入中出现空格。怎么预防呢?我尝试用

做到这一点
angular.element($('#trimInput')).val($scope.inputValue);

它有效,但我不喜欢这个解决方案。



angular.module('app', [])
  .controller('trim', ['$scope', function($scope) {
    
    $scope.inputValue = "some text";  
    $scope.editMode = false;
    
    $scope.edit = function() {
      $scope.editMode = true;  
    };
    
    $scope.save = function() {
      $scope.editMode = false;  
      //angular.element($('#trimInput')).val($scope.inputValue);
      console.log($scope.inputValue);
      console.log($scope.inputValue.length);
    };
    
  }])

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="app">
  <div ng-controller="trim">
    <div ng-show="!editMode">
      [{{inputValue}}]
      <button ng-click="edit()">edit</button>
    </div>
    <div ng-show="editMode">
      <input id="trimInput" type="text" ng-model="inputValue" />
      <button ng-click="save()">save</button>
    </div>
  </div>
</body>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

默认情况下,ng-trim的角度为true,因此会自动调整范围内的值。但是input上的值不会更新,意味着会有额外的输入。你必须手动分配它。

$document[0].getElementById("trimInput").value = $scope.inputValue;

为此,您需要在应用程序中注入$document。保存时,这会自动为每个输入赋值。

See DEMO

答案 1 :(得分:0)

使用

RowNumber            ApplicationDecisionID previousDescIDRowNumber
-------------------- --------------------- -----------------------
1                    705                   <blank>
2                    989                   705

和   Why is this Angular JS filter removing spaces?