使用AngularJS的单选按钮的奇怪行为

时间:2014-07-28 21:28:59

标签: javascript html angularjs input angularjs-directive

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

初始状态 - 数组未定义。

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

我遇到的行为:

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

  • 如果我使用ng-checked + NO ng-model + NO值 - 一切正常 预期

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

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

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

提前致谢

1 个答案:

答案 0 :(得分:0)

我知道我迟到了。

我已经改变了条件

<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

我在这里严格检查值(===&amp;!==),这也将检查类型。

请找到第三种情况的工作jsfiddle

相关问题