我正在使用系统,我从一个元素数组填充ng-repeat,并使用单选按钮设置属性。当它加载时,没有选择任何单选按钮,但是当我选择任何单选按钮时,它会适当地绑定到模型。它在没有外部重复的单一格式下工作,所以我不确定它为什么拒绝从模型中选择单选按钮。
<div ng-repeat="selectedTag in selectedGroup.tags track by $index" ng-controller="ThemesEdit_TagStylesCtrl">
<div class="type-select">
<label ng-repeat="styleGroup in styleGroups.list" ng-hide="styleGroup.name == 'Settings'">
<input type="radio" name="tagType" ng-model="selectedTag.styleGroupId" ng-value="styleGroup.styleGroupId"/> <span>{{styleGroup.name}}</span>
</label>
</div>
<div ng-include src="another_page"></div>
<div class="clear-float"></div>
<p tag-example="selectedTag" data-style-group="styleGroup"></p>
</div>
我可以看到$ parent.selectedTag.styleGroupId在每个selectedTag上都会出现,它会触发使用ng-include引入的模板中的选项,所以我知道这非常接近正常工作。唯一剩下的问题似乎是它不会自动选择带有定义的ng模型的单选按钮。
我对角度很新,所以它可能是完全明显的东西,但我希望有人能照亮我的路。感谢您的帮助!
编辑:更新了以下两条建议。仍然没有快乐,但我想我会将代码编辑为最新的迭代。
答案 0 :(得分:2)
我会说解决方案是ng-value="styleGroup.styleGroupId"
,documentation here。
答案 1 :(得分:0)
我认为你应该使用ng-model="selectedTag.styleGroupId"
。 selectedTag
不应被你的内部重复覆盖。
更新:
看看this SO answer ng-value
需要设置true
。
答案 2 :(得分:0)
我感到非常愚蠢 - 这是我忽略的简单事情。使用单个实例,使用<input type="radio" name="tagType" ng-model="selectedTag.styleGroupId" ng-value="styleGroup.styleGroupId"/> <span>{{styleGroup.name}}</span>"
中设置的名称进行发布工作正常。一旦我将它填入ng-repeat,它就会在相同的name="tagType"
下发布并覆盖选择。果然,当我滚动到页面底部时,最后一组单选按钮被正确检查。
检查文档,名称是可选的,删除它允许所有单选按钮集正确填充。我没有看到任何其他任何不良影响 - 有什么我应该注意的吗?
感谢大家的帮助/想法!