javascript – AngularJs:ng-model不绑定到ng-checked for input type =“radio”,使用ng-repeat
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – AngularJs:ng-model不绑定到ng-checked for input type =“radio”,使用ng-repeat,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3032字,纯文字阅读大概需要5分钟。
内容图文
![javascript – AngularJs:ng-model不绑定到ng-checked for input type =“radio”,使用ng-repeat](/upload/InfoBanner/zyjiaocheng/703/4184070124a045529096a0557e13093f.jpg)
参见英文答案 > AngularJS: ng-model not binding to ng-checked for checkboxes 5个
我正在尝试使用ng-repeat指令和逐个表达式来显示单选按钮,当我提交值附加到模型中时,当我使用模型中的值重新打开页面时,单选按钮不显示已选中.
我用平面字符串模型字符串值实现了相同的功能.但这次我正在尝试使用物体.
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<div ng-app="app" ng-controller="MyCtrl">
<form name="myForm">
<p>New TRY</p>
<ul>
<li ng-repeat="i in peopleNew.person">
<label>
{{i}}
<input type="radio" ng-model="peopleServer.person"
name="same" ng-value="i" />
</label>
</li>
</ul>
</form>
<div>
JS代码
angular.module('app', [])
.controller('MyCtrl', ($scope) => {
$scope.peopleNew ={
person: {
"name": "Ringo",
"id": "R",
"subj": "Sci"
}
}
$scope.peopleServer= {
person: {"name":"Ringo"}
}
});
如上所述,我应该在屏幕上有4个单选按钮,我可以选择1并提交.然后,当我再次在我的模型中打开它时,该人具有正确的值,该值通过ng-value保存但仍然在UI上我没有看到单选按钮检查名称Ringo应该被检查.型号有:
$scope.peopleServer= {
person: {name:"Ringo"}
}
试过的解决方案
> ng-checked表达,虽然我读过ng-model和ng-checked
不应该一起使用,理想情况下使用模型绑定它应该被chcked.
> explanation我读到,ng-repeat没有正确渲染所以我试图重新渲染但没有工作.
>从模板中删除了ng-checked仍然无法正常工作.
>按工作跟踪ng-repeat中的字符串值.在ng-options中它也适用于对象值,但是它不是输入元素而是select元素
当您重新加载或者您已经拥有模型中的值时,有人会帮助您了解如何选择单选按钮
angular.module('app', [])
.controller('MyCtrl', ($scope) => {
$scope.peopleNew ={
person: {
"name": "Ringo",
"id": "R",
"subj": "Sci"
}
}
//uncomment for testing.
$scope.peopleServer= {
person: {"name":"Ringo"}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<div ng-app="app" ng-controller="MyCtrl">
<form name="myForm">
<p>New TRY</p>
<ul>
<li ng-repeat="i in peopleNew.person">
<label>
{{i}}
<input type="radio" ng-model="peopleServer.person"
name="same" ng-value="i" />
</label>
</li>
</ul>
</form>
<div>
自动?我上面的所有尝试都没有用,我错过了什么.
解决方法:
您有一些语法错误,缺少模型值和一些不必要的标记.首先,你可以完全摆脱ng-checked.如果正确设置ng-model和ng-value,将自动处理.由于您的对象是唯一的,因此无需跟踪.
使用AngularJS指令(例如ng-value)时,不需要使用大括号来引用模型值.因此ng-value =“{{person}}”成为ng-value =“person”.
您可以参考myObj.person,但似乎没有相应的模型值.下面是您提供的代码和标记的编辑,显示它确实可以使用对象作为单选按钮的值.
angular.module('app', [])
.controller('MyCtrl', ($scope) => {
$scope.people = [{
name: "John",
id: "J"
}, {
name: "Paul",
id: "P"
}, {
name: "George",
id: "G"
}, {
name: "Ringo",
id: "R"
}];
$scope.myObj = {
person: $scope.people[1]
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.2/angular.min.js"></script>
<div ng-app="app" ng-controller="MyCtrl">
<form name="myForm">
<p>Decisions</p>
<ul>
<li ng-repeat="person in people">
<label>
{{ person.name }}
<input type="radio" ng-model="myObj.person"
name="sameName" ng-value="person" />
</label>
</li>
</ul>
</form>
<div>
{{ myObj.person }}
</div>
</div>
内容总结
以上是互联网集市为您收集整理的javascript – AngularJs:ng-model不绑定到ng-checked for input type =“radio”,使用ng-repeat全部内容,希望文章能够帮你解决javascript – AngularJs:ng-model不绑定到ng-checked for input type =“radio”,使用ng-repeat所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。