我已经看到了几个示例,其中用户可以将数据输入到<textarea>
中并将其转换为数组。但是,如果我在内部修改数组,则更改不会反映在文本区域中。有没有办法使绑定成为双向?
示例:该按钮将项目添加到数组中,但它们不会显示在文本区域中。修改文本区域会覆盖所有内部更改。
var app = angular.module('app', []);
<html ng-app="app">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<textarea ng-init="list=['item1', 'item2']" ng-model="list" ng-list></textarea><br>
<button ng-click="list.push('newitem')">add</button>
<pre>{{ list | json }}</pre>
</html>
答案 0 :(得分:0)
您需要更改引用list
。 ng-model
不进行深度相等性检查。
尝试类似list = list.slice(0); list.push('newitem')
var app = angular.module('app', []);
<html ng-app="app">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<textarea ng-init="list=['item1', 'item2']" ng-model="list"></textarea><br>
<button ng-click="list = list.push('newitem')">add</button>
<pre>{{ list | json }}</pre>
</html>