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

Javascript AngularJs:默认情况下未选择单选按钮,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>' + 我有方法foo可以做到这一点 scope.foo = function

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

'<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>' +
我有方法foo可以做到这一点

scope.foo = function(selectedValue) {
                    scope.selectedMatchType = selectedValue;
                };
我面临两个问题

  • 即使我已经将ng model设置为selectedFoo,但是当单选按钮被渲染时,默认情况下下拉列表中的第一个元素并没有设置
  • 对于列表中的每个元素,只调用一次方法foo。例如,如果我点击A,调用foo,如果我点击B,调用foo,如果我再次点击A,则不调用foo,但如果我点击C,调用foo
  • 这里出了什么问题?

    请注意,每个模板都有自己的作用域,这意味着您必须在ng模型中使用$parent作为输入

    ng-model="$parent.selectedFoo"
    
    另外,您还可以使用代码示例:

    你能提供一把小提琴或同等的小提琴吗?小提琴很好:@HenrikPeinar。事实上没有。如果你查看控制台,你会发现fiddle也只为列表中的每个项目调用foo方法一次。请查看我的答案和更新的fiddle。我误导性地只检查了默认的收音机输入选择,这是辉煌的。这个问题对我来说已经解决了,但是问题1还没有解决。我无法在默认情况下选择下拉列表中的第一项。知道为什么吗?尽管如此,我还是会将其标记为答案。这很奇怪,因为在小提琴中,即使selectedFoo变量发生了更改,默认选择也可以正常工作。它检查单选按钮,该按钮的值已在“ng型号”中。
    ng-model="$parent.selectedFoo"