javascript - AngularJS 中单选按钮的奇怪行为

标签 javascript html angularjs input angularjs-directive

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

初始状态 - 数组未定义。

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

我遇到的行为:

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

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

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

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

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

提前致谢

最佳答案

我知道我迟到了。

我已更改条件

<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对于第三种情况。

关于javascript - AngularJS 中单选按钮的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25004671/

相关文章:

javascript - Laravel 5.5 DataTables Yajra Ajax Crud

html - 删除 Logo 透明部分下方的框阴影

javascript - AngularJS Json 编辑器

javascript - Node.js:解析 JSON 对象

javascript - 在 DOM 中删除和追加

javascript - ECMAScript 规范中的 `ExpressionNoIn` 是什么意思?

html - 为什么子元素 "row"与父元素 "container"的高度不匹配?

javascript - 缩短重复元素的 Javascript

javascript - Angularjs ng-click 在几秒钟内点击重定向

javascript - 使用 angularjs 从 json 中获取 ng-options