Angular不从模型中选择单选按钮

时间:2014-07-28 21:45:15

标签: angularjs angularjs-scope angularjs-ng-repeat

我正在使用系统,我从一个元素数组填充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模型的单选按钮。

我对角度很新,所以它可能是完全明显的东西,但我希望有人能照亮我的路。感谢您的帮助!

编辑:更新了以下两条建议。仍然没有快乐,但我想我会将代码编辑为最​​新的迭代。

3 个答案:

答案 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"下发布并覆盖选择。果然,当我滚动到页面底部时,最后一组单选按钮被正确检查。

检查文档,名称是可选的,删除它允许所有单选按钮集正确填充。我没有看到任何其他任何不良影响 - 有什么我应该注意的吗?

感谢大家的帮助/想法!