【问题标题】:Angular not selecting radio button from model角度未从模型中选择单选按钮
【发布时间】:2014-09-20 05:01:26
【问题描述】:

我正在开发一个从元素数组填充 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-model 的单选按钮。

我对 Angular 还很陌生,所以它可能是完全显而易见的,但我希望有人能照亮我的道路。感谢您的所有帮助!

编辑:更新了以下两个建议。仍然不高兴,但我想我会将代码编辑到最新的迭代中。

【问题讨论】:

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


    【解决方案1】:

    我觉得自己很愚蠢——我忽略了一些简单的事情。对于单个实例,使用在 &lt;input type="radio" name="tagType" ng-model="selectedTag.styleGroupId" ng-value="styleGroup.styleGroupId"/&gt; &lt;span&gt;{{styleGroup.name}}&lt;/span&gt;" 中设置的名称进行发布工作正常。一旦我把它塞进一个 ng-repeat,它就会在同一个 name="tagType" 下发布并覆盖选择。果然,当我滚动到页面底部时,最后一组单选按钮被正确选中。

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

    感谢大家的帮助/想法!

    【讨论】:

      【解决方案2】:

      我认为你应该使用ng-model="selectedTag.styleGroupId"selectedTag 不应被您的内部 ng-repeat 覆盖。


      更新:

      看看this SO answerng-value需要设置true

      【讨论】:

      • 我尝试了那个编辑,但仍然没有乐趣。不过还是谢谢你的建议!
      • 您是否尝试过在单选按钮旁边简单地显示{{selectedTag.styleGroupId}}?只是为了澄清它是否是正确的变量......
      • Daniel - 在本地,我确实有,它正在评估正确的值。这就是为什么它对我来说如此莫名其妙。感谢您的建议 - 从最基本的可能性开始绝对有意义!
      • 那么,继续使用这种方法:当您在它旁边显示值时 - 如果您选择另一个单选按钮,它是否会更新?
      • 值会更新。当我点击单选按钮时,模型上的属性会发生变化。不幸的是,在加载时,相应的按钮没有选择。
      【解决方案3】:

      我会说解决方案是ng-value="styleGroup.styleGroupId"documentation here

      【讨论】:

      • 你是正确的,花括号是不必要的,但不幸的是,它不会影响结果。初始单选按钮选择仍然不会根据加载的模型触发。
      猜你喜欢
      • 2021-03-21
      • 2016-02-25
      • 2014-08-10
      • 1970-01-01
      • 2020-05-28
      • 2015-09-04
      • 2021-10-07
      • 2018-11-17
      • 2021-07-23
      相关资源
      最近更新 更多