AngularJs单选按钮列表将已检查状态保持为模型

时间:2013-10-22 16:38:50

标签: angularjs radio-button angularjs-scope

使用plunker更好地解释

http://plnkr.co/edit/m8cvxA?p=preview

在我工作的设置页面中,管理员可以设置应该对哪个站点应用的默认值。当您在单选按钮中更改选择并单击保存按钮时,在plunker中。检查控制台日志数据

  1. 为什么不在Users对象中选择单选按钮?

  2. 我该怎样做才能坚持国家(正确的方式)?

2 个答案:

答案 0 :(得分:1)

ngChecked仅与视图相关联,它不会更新模型(http://docs-angularjs-org-dev.appspot.com/api/ng.directive:ngChecked)。您希望使用ng-model将结果绑定到模型。

请查看Angular单选按钮上的此文档:http://docs.angularjs.org/api/ng.directive:input.radio

我在这里复制了关键部分:

  <form name="myForm" ng-controller="Ctrl">
     <input type="radio" ng-model="color" value="red">  Red <br/>
     <input type="radio" ng-model="color" value="green"> Green <br/>
     <input type="radio" ng-model="color" value="blue"> Blue <br/>
     <tt>color = {{color}}</tt><br/>
 </form>

请注意,与使用多个布尔值相比,您将使用单个变量,该变量将设置为选中的value(因为只能通过单选按钮检查一个)。

答案 1 :(得分:0)

简而言之,单选按钮用于将多个值中的一个指定给单个变量。

您要做的是将truefalse分配给多个值。

所以你可以:

  • A)使用一个单选按钮,将“1天”,“6个月”,“1年”分配给用户的字段
  • B)您必须在控制器(或指令)上写一些逻辑,找出哪个单选按钮被选中,然后以编程方式将truefalse分配给User.options上的适当字段。