【发布时间】:2019-02-09 14:14:32
【问题描述】:
我正在尝试使用带有表达式跟踪的 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 不应一起使用,理想情况下应使用模型绑定进行检查。
- explanation我读到,ng-repeat 无法正确渲染,所以我尝试强制重新渲染但没有成功。
- 从模板中删除 ng-checked 仍然无效。
- Track by 适用于 ng-repeat 中的字符串值。在 ng-options 中,它也适用于对象值,但它不是输入元素,而是选择元素
有人帮助理解,当您重新加载或您已经拥有模型中的值时,如何选择单选按钮
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>
自动?我上面的所有尝试都不起作用我错过了什么。
【问题讨论】:
-
使用 angularjs 1.6 ,并尝试使用 1.7,如果它解决了我的问题,将会更新。
-
有什么帮助吗??这不是我检查的版本的问题
-
@georgeawg ::感谢您的修改。你有什么建议让我试试吗?我不认为它是重复的。问题在于混合 ng-model 和 ng-checked。此外,现在您已将其更改为 sn-p 更多人可以过去并可能解决。早些时候它不在sn-p中,但由于您复制了现在没有人可以回答。
-
我关闭了这个问题,因为它无法挽救。该问题已被编辑以删除
ng-checked。任何寻求“ng-model not binding to ng-checked”建议的人最好阅读副本。 -
@georgeawg:现在我知道我们不应该同时使用 ng-model 和 ng-checked 但在我尝试过的解决方案中,我已经将其删除并尝试了。无论如何谢谢你.....
标签: javascript angularjs html radio-button