angularjs-操纵dom

时间:2018-07-17 13:33:51

标签: angularjs dom getelementbyid

我有一个文本区域,尽管通过函数添加了注释,但仍然保持ng空。结果,内容没有绑定到$ scope,并且我丢失了数据。

我尝试了以下方法:

angular.element($document[0].getElementById(vm.selectedId)).value = comment;

$document[0].getElementById(vm.selectedId).value = comment;

window.document.getElementById(vm.selectedId).value = comment;

document.getElementById(vm.selectedId).value = comment;

尽力而为(即使有最多的ng包装)也没有任何效果。其余的将出现在字段中但不绑定。

我还应该注意,我要向其添加文本的文本字段位于ng-repeat行内,因此它们的ID是使用$ index创建的。

1 个答案:

答案 0 :(得分:0)

如何将索引传递给函数,然后更新基础数组

(function() {
    'use strict';
angular
  .module('myApp', [])
  .controller('myCtrl', myCtrl);

   function myCtrl(){
       /* jshint validthis: true */
       var vm=this;
       vm.items = ['one', 'two', 'three', 'four'];
       vm.addComment = function(i){
        vm.items[i] = 'comment';
       }
       
   } 

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

<div ng-app="myApp">
  <div ng-controller="myCtrl as vm">
    <div class="row" ng-repeat="item in vm.items track by $index">
            <textarea ng-model=item></textarea>
            <button ng-click="vm.addComment($index)">add comment</button>
      </div>
    </div>
  </div>