javascript – 带有ngRepeat的单选按钮上的ngModel损坏
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 带有ngRepeat的单选按钮上的ngModel损坏,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1188字,纯文字阅读大概需要2分钟。
内容图文
![javascript – 带有ngRepeat的单选按钮上的ngModel损坏](/upload/InfoBanner/zyjiaocheng/794/2c93921db5fc47deb348fd1e5e14b633.jpg)
普拉克:http://plnkr.co/edit/Y4ntAj2fIIpexKjkCvlD?p=preview
我正在尝试构建一个表单组件,允许用户创建某个数据字段的多个实例,但是从同一组输入中填充它们.
我正在为集合中的每个项目创建一个单选按钮,使用ng-repeat然后每个单选按钮的值都设置为重复的$index.单选按钮以$scope.selectedItem为模型,用于将输入指向正确的项目.
但是,出于某种原因,即使所选单选按钮的状态如此,selectedItem也不会更改.
我尝试使用静态单选按钮进行类似的操作并且工作正常,这让我相信ng-repeat中的ng-model存在问题.
解决方法:
您需要为每个按钮添加ngModel.然后,由于ngRepeat的每次迭代都会创建一个新的隔离范围,因此您有两种方法可以在父控制器中引用您的变量:
>将selectedItem更改为对象.这是因为对象是通过JS中的引用传递的,而传递像你一样的原语不适用于双向绑定.
>添加$parent.selectedItem,它引用控制器中的范围变量selectedItem.
无论如何,每个按钮都需要ngModel.
第一种选择:
<input type='radio'
name='select'
id='{{$index}}'
ng-value='$index'
ng-model='$parent.selectedItem'/>
第二种选择:
JS:
$scope.selectedItem = {id: -1};
HTML:
<input type='radio'
name='select'
id='{{$index}}'
ng-value='$index'
ng-model='selectedItem.id'/>
(以及在您将selectedItem引用到selectedItem.id的任何其他地方进行更改)
Plunker Using an object for selectedItem
内容总结
以上是互联网集市为您收集整理的javascript – 带有ngRepeat的单选按钮上的ngModel损坏全部内容,希望文章能够帮你解决javascript – 带有ngRepeat的单选按钮上的ngModel损坏所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。