【问题标题】:Odd behavior of radio buttons with AngularJSAngularJS 单选按钮的奇怪行为
【发布时间】:2014-09-20 04:43:50
【问题描述】:

我在使用单选按钮时遇到了以下奇怪的行为。 我想要完成的事情: 如果数组未定义 - 选择单选按钮 1。 定义数组后,选择单选按钮 2。

初始状态 - 数组未定义。

function MainCtrl($scope){
  $scope.model = {}; };

我遇到的行为:

  • 如果我在两个单选按钮上使用 ng-model + value + ng-checked - 一切都按预期工作。小提琴:http://jsfiddle.net/34dT9/

  • 如果我使用 ng-checked + NO ng-model + NO value - 一切正常 预计。

  • 但是,如果我使用 ng-model + ng-checked + NO 值 - NONE 单选按钮被选中,尽管单选按钮的条件 被评估为 TRUE。小提琴:http://jsfiddle.net/34dT9/1/

我的假设是,由于 AngularJS 文档 (https://docs.angularjs.org/api/ng/input/input%5Bradio%5D) 似乎声明元素必须具有 ng-model 和 value 集,但 ng-change 是可选的,因此这种行为是可选的。但是,上面的一个测试用例表明,仅使用 ng-change(没有看似强制性的属性/指令)会产生所需的行为。

我很难理解这种行为,很高兴有人能够向我解释。

提前致谢

【问题讨论】:

    标签: javascript html angularjs input angularjs-directive


    【解决方案1】:

    我知道我迟到了。

    我已经改变了条件

    <input type="radio" ng-model="model.permissions"  name="fooradio" ng-checked="model.permissions == null"> Radio 1
    <input type="radio" ng-model="model.permissions" name="fooradio" ng-checked="model.permissions != null"> Radio 2
    

     <input type="radio" ng-model="model.permissions"  name="fooradio" ng-checked="model.permissions === null"> Radio 1
     <input type="radio" ng-model="model.permissions" name="fooradio" ng-checked="model.permissions !== null"> Radio 2
    

    我在这里使用 (=== & !==) 严格检查值,它也会检查类型。

    请为第三种情况找到有效的jsfiddle

    【讨论】:

      猜你喜欢
      • 2013-09-24
      • 1970-01-01
      • 2015-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 2019-01-12
      相关资源
      最近更新 更多