【问题标题】:AngularJS ng-model data from radio button来自单选按钮的 AngularJS ng-model 数据
【发布时间】:2014-01-30 15:13:28
【问题描述】:

我在 AngularJS 中有一个简短的表格。 我使用ng-repeat 来显示性别并验证他们的单选按钮 问题是我想获取选中的单选按钮的值并使用ng-model 打印出来。 如何做到这一点?

Here Plunker

【问题讨论】:

  • 所有解决方案都在停止验证!请帮助
  • 这不是重复的,因为我有我想保留的验证,而另一个问题没有!
  • 好的,现在很简单 ng-show="user.selectedGender == 1"> 并将变量设置为 1

标签: angularjs ng-repeat


【解决方案1】:

Mike Robinson 的解决方案是最优雅的。但是,一个快速的解决方法是添加 $parent:

            <input type="radio" ng-model="$parent.selectedGender" name="radiob" id="{{g.id}}" value="{{g.id}}" required />{{g.name}}

这将改变 ng-repeat 的父范围内的 selectGender。

http://plnkr.co/edit/M5cos7xFBA9a0eRWhHi9?p=info

【讨论】:

    【解决方案2】:

    问题是您将选定的性别(一个原始值)绑定到您的 $scope。当您使用 ng-repeat 时,它会创建一个新范围并从其父级继承值。不幸的是,因为你的值是原始的(一个数字),它们是通过值而不是引用传递的,所以你只能得到一种方式绑定。这就是为什么总是建议将值存储在范围内的对象上,而不是直接存储。

    这是一个工作控制器的链接:http://plnkr.co/edit/Y7sTEaYMx0aD4fPDHAMA?p=preview

    我添加了这个,并相应地调整了其余代码:

    $scope.user = {
        selectedGender: 'none'
    }
    

    【讨论】:

    • 所有解决方案都在停止验证!请帮助
    • @AlexG_1010100101 这是一个单独的问题。不过,这也与 ng-repeat 有关。您的表单变得混乱,因为它试图验证具有相同名称的多个元素。阅读这篇文章,它将向您展示如何使用 ngForm 使其工作:blog.brunoscopelliti.com/the-ngform-directive-of-angularjs
    猜你喜欢
    • 2013-09-06
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 2016-03-08
    相关资源
    最近更新 更多