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值