更改范围时更新文本区域

时间:2016-09-01 15:41:57

标签: angularjs arrays scope angularjs-scope angular-nglist

所以我有一个用ng-list定义的文本区域,它将数组中的元素分成它们自己的行。

  <textarea data-ng-model="names" data-ng-list="&#10;" data-ng-trim="false"></textarea>

我有一个按钮,它会在names数组中添加内容,我希望它也能显示在textarea中。

<button data-ng-click='addPlayer()'>Add</button>

$scope.addPlayer = function() {
  $scope.names.push('HODOR' + n++);
}

不幸的是,当更多元素添加到数组时,textarea不会更新,即使它们仍然存储在数组中。无论如何,他是否可以强迫这种情况发生?我尝试使用$ scope。$ apply并且没有用。这是一个显示错误的plunker。 https://plnkr.co/edit/gaLtvWw3Odhfngrhkitf?p=preview

1 个答案:

答案 0 :(得分:0)

您可能想看看这个:

Cannot get textarea value in angularjs

使用$ scope。$ apply不会工作,textarea是一个指令,并且:

  

AngularJS将在指令范围内查找该变量。它不存在,因此他走向$ parent。变量存在于那里,文本被插入到textarea中。更改textarea中的文本时,Angular不会更改父变量。相反,它在指令的范围内创建一个新变量,因此原始变量不会更新。