如何防止AngularJS递归绑定?
How do I prevent AngularJS binding recursively?
我有一个select:
<select ng-model="p.value" ng-options="q for q in p.value">
<option value="">Select an animation</option>
</select>
其中p.value
是['AAAAA', 'BBBBB', 'CCCCC']
,但当我选择一个选项时,选择更新并显示一堆新的选项,如:
<option>A</option>
<option>A</option>
<option>A</option>
<option>A</option>
<option>A</option>
通过在模型和选项中使用相同的值,我显然构造了错误的东西。做事情的正确方法是什么?
您需要将项目数组和模型分开
<div ng-app ng-controller="MyCtrl">
<select ng-model="p.selected" ng-options="q for q in p.value">
<option value="">Select an animation</option>
</select>
{{p.selected}}
</div>
function MyCtrl($scope) {
$scope.p = {
value: ['AAAAA', 'BBBBB', 'CCCCC'],
selected : null
};
}
在您的示例中发生的事情是,一旦您选择AAAAA
, p.value
现在引用字符列表,并且由于ng-options
绑定到相同的$scope
属性,下拉列表更新并产生您所看到的结果。
jsfiddle
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 数组在递归方法中设置为null
- 无法通过数组映射绑定
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- 主干-不管怎样,检查事件以前是否绑定过
- 用于搜索的聚合物嵌套绑定
- 递归使用 eval() 是检查程序执行的好方法吗?
- Angular:更新一次性绑定的数据
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- react.js中的密钥绑定
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 将事件处理程序绑定到任何可能的事件
- 为什么可以't使用振荡器的递归单宁性质来创建音乐定序器
- Aurelia 和递归绑定
- 通过递归将事件处理程序绑定到动态创建的元素
- ON 绑定过多的递归
- 如何防止AngularJS递归绑定?
- 在重绑定函数引用时避免递归
- 如何防止在knockout.js自定义绑定中递归调用更新和值更改回调
- Jquery绑定在javascript递归循环中不工作