【问题标题】:Radio button not working within nested ng-repeats and filter单选按钮在嵌套的 ng-repeats 和过滤器中不起作用
【发布时间】:2016-02-26 20:25:48
【问题描述】:

我必须关注问题。我有一个带有两个单选按钮的嵌套 ng-repeat,当我选择一个单选按钮时,该值被正确设置为模型。但是当我过滤到不在集合中的值时,该值未设置为视图(模型仍然正确)

复制:

Example

当您选中所有 3 个单选按钮时让我们说“读取”,而不是在输入中输入“x”进行过滤,现在从输入中删除该值。最后一个收音机被选中,其他的都没有。

ps。我试过 ng-value 而不是 value。

控制器:

vm.list = [{id: 1, name: 'Item1', items: [{id: 1, name: 'SubItem1.1'}, {id: 2, name: 'SubItem1.2'}, {id: 3, name: 'SubItem1.3'}]}]

查看:

<input type="text" ng-model="search" /> 
<ul>
 <li ng-repeat="item in vm.list">
   <h4 ng-bind="item.name"></h4>
   <ul>
     <li ng-repeat="subitem in item.items | filter:search">
       <h4 ng-bind="subitem.name"></h4>

       <input type="radio" name="{{item.id}}{{subitem.id}}" ng-model="subitem.permission" value="read" /> Read
       <input type="radio" name="{{item.id}}{{subitem.id}}" ng-model="subitem.permission" value="write" /> Write
     </li>
   </ul>
 </li>

【问题讨论】:

    标签: javascript angularjs filter radio-button ng-repeat


    【解决方案1】:

    更改输入名称 来自

    name="{{item.id}}{{subitem.id}}"
    

    name="{{subitem.id}}"
    

    【讨论】:

    • 这行得通!谢谢你!!!但是为什么这个 name="{{item.id}}{{subitem.id}}" 不起作用?
    • 我没有找到原因。我不知道为什么你输入的名字不起作用
    • 我怀疑这取决于范围。每次重复都会创建一个新范围。老实说,它看起来像是 Angular 模型绑定自身的一个错误。
    • 如果您在 subitem 中没有唯一键,您也可以使用 {{item.id + subitem.id }} 这可行
    猜你喜欢
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 2014-06-13
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多