双向绑定 ng-repeat 中的字符串数组
Two way binding an array of strings in ng-repeat
我有一个字符串数组,我希望每个字符串都绑定到一个输入。
但是,编辑输入似乎不会更新数组(可能是孤立的范围问题?
建议?
function Ctrl($scope) {
$scope.fruits = ['Apple', 'Mango', 'Banana', 'Strawberry'];
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
<div ng-controller="Ctrl">
<div style="margin: 20px 0" ng-repeat="fruit in fruits">
<input type="text" ng-model="fruit" />
</div>
Fruits: {{fruits}}
</div>
</div>
您需要
可以从$index
获得的数组引用。但是请注意,如果在ng-repeat
上进行了任何过滤,这将不起作用,因为索引是基于过滤的数组而不是原始数组
<div style="margin: 20px 0" ng-repeat="fruit in fruits track by $index">
<input type="text" ng-model="fruits[$index]" />
</div>
演示
好的,所以在我看来,这就像一个案例
'ng-model 需要模型名称中的点才能与 范围,否则它将创建一个本地范围'
我的建议是将数据结构从纯字符串更改为包含字符串作为属性的对象,例如:
$scope.fruits = [
{'title':'Apple'},
{'title':'Mango'},
{'title':'Banana'},
{'title':'Strawberry'},
];
现在,当你像这样将它绑定到 ng 模型时
<div style="margin: 20px 0" ng-repeat="fruit in fruits">
<input type="text" ng-model="fruit.title" />
</div>
然后,它不会创建任何本地/子作用域,而是能够绑定到 fruits
数组中项的 title
属性。
示例小提琴:http://jsfiddle.net/HB7LU/24008/
相关文章:
- 将JSON转换为typescript中的字符串数组
- 在Javascript中将一个值和字符串数组转换为if语句
- 如何将正则表达式包含到字符串数组中
- JavaScript:将字符串数组转换为文本区域
- Knockout中的字符串数组
- 拆分字符串数组(JavaScript)后未定义
- 使用Javascript获取两个字符串之间的字符串数组
- 打印从Spring MVC Controller发送的字符串数组只显示“;toJSON”;在javascript中
- 将一个字符串数组解析为一个新的数组javascript
- AngularJS - 从字符串数组中连续更改文本
- 使用字符串数组中的字符填充 HTML 表
- 如何在 Javascript 中将字符串数组列表插入到表行中
- 创建二维字符串数组
- 如何从字符串数组中获取子字符串数组
- 如何将字符串数组转换为简单数组
- 按字母顺序、数字顺序和特殊字符对字符串数组进行排序
- 如何从字符串数组中获得8个随机唯一元素
- json_encode($myVar);正在给出地图,我想要一个字符串数组
- 函数,返回javascript中两个字符串数组的差值
- Javascript字符串数组转换为用逗号分隔的多个字符串