AngularJS – 模型不会更新由ng-repeat生成的单选button

我使用ng-repeat生成一堆单选button,然后在select其中一个模型时尝试更新模型。 这似乎没有工作。

当无线电input是硬编码时,相同的标记工作得很好,而不是由ng-repeat生成。

这工作:

<input type="radio" ng-model="lunch" value="chicken" name="lunch"> <input type="radio" ng-model="lunch" value="beef" name="lunch"> <input type="radio" ng-model="lunch" value="fish" name="lunch"> {{lunch}} 

这不:

 <input type="radio" ng-model="lunch" ng-repeat="m in meat" value="m" name="lunch"> {{lunch}} 

看到这里显示两个jsfiddle: http : //jsfiddle.net/mark_up/A2qCS/1/

任何帮助,将不胜感激。

谢谢

 <div ng-controller="DynamicCtrl"> <input type="radio" ng-model="$parent.lunch" ng-repeat="m in meat" ng-value="m" name="lunch"> {{lunch}} </div> 

应该做的伎俩。

据我所知, ng-repeat创build了自己的$scope 。 所以你需要引用$parent $scope; 是的,AngularJS是棘手的。 您也需要将value更改为ng-value

上面的问题在这里讨论

这是因为ng-repeat创build了一个新的范围。 基本上,每个<input>在它自己的内部作用域上创build一个selectedOption值。 要解决该问题,请为该值创build一个新的容器对象。 例如,你可以在你的控制器中声明:

 $scope.data = {selectedOption: x}; 

然后在你的模板中,使用ng-model="data.selectedOption"

这样,ng-model得到更新.. 🙂

这是棘手的

只需要用ng值replace值