angularjs - 操纵 dom
angularjs - Manipulate dom
尽管通过函数添加了注释,但我有一个文本区域仍然为空。结果,内容没有绑定到 $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...
创建的
如何将索引传递给您的函数,然后更新底层数组
(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>
尽管通过函数添加了注释,但我有一个文本区域仍然为空。结果,内容没有绑定到 $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...
创建的如何将索引传递给您的函数,然后更新底层数组
(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>