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

AngularJs: Radio Button Not Selected By Default

本文关键字:选择 单选按钮 情况下 默认 AngularJs      更新时间:2024-02-18

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

'<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模型中使用$parent作为输入。

ng-model="$parent.selectedFoo"

还有一个正在使用的代码示例:http://jsfiddle.net/hpeinar/5gj9y6k4/