javascript - AngularJs:默认情况下未选择单选按钮

标签 javascript angularjs

我的指令模板中有以下代码段

'<li ng-repeat="f in foos">' +
'<input type="radio" ng-change="foo(f.key)" ng-model="selectedFoo" name="foos" id="{{f.key}}" value="{{f.key}}">{{f.value}}</input>' +
'</li>' +

在我的链接方法中,我有

scope.foos = [
                    { key: 'a', value: 'A', checked: true, symbol: 'a' },
                    { key: 'b', value: 'B', symbol: 'b' },
                    { key: 'c', value: 'C', symbol: 'c' }
                ];
scope.selectedFoo = "a";

我有方法 foo 可以做到这一点

scope.foo = function(selectedValue) {
                    scope.selectedMatchType = selectedValue;
                };

我面临两个问题

  1. 即使我已将 ng-model 设置为 selectedFoo,但在渲染单选按钮时默认情况下不会设置下拉列表中的第一个元素。
  2. 对于列表中的每个元素,仅调用 foo 方法一次。所以,例如,如果我点击 A,foo 被调用,如果我然后点击 B,foo 被调用,如果我再次点击 A,foo 不会被调用,但如果我然后点击 C,foo 被调用。

这里出了什么问题?

最佳答案

请注意 ng-repeat为每个模板创建自己的范围,这意味着您必须在 ng-model 中使用 $parent 作为输入。

ng-model="$parent.selectedFoo"

也是您的代码示例的有效 fiddle : http://jsfiddle.net/hpeinar/5gj9y6k4/

关于javascript - AngularJs:默认情况下未选择单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28629432/

相关文章:

javascript - Redux 中间件是如何实现多任务的?

javascript - knockoutjs 绑定(bind)到主视图模型中所选 subview 模型的 ko.observableArray

javascript - 检查 Controller 上是否有任何指令

javascript - 如何延迟计数器直到动画完成

angularjs - 在 AngularJS 中使服务异步

javascript - 通过 CSS 显示浏览器兼容性警报(网格支持)

javascript - 在 Angular 模块中导出枚举

javascript - 为什么 mousemove 的覆盖层没有在 mouseleave 上消失?

javascript - 将 href 与 ng-click 结合使用

javascript - 使用 $q.all 的 Angular Promises