【问题标题】:how to get selected value of ng-options inside ng-repeat in a form如何在表单中的 ng-repeat 中获取 ng-options 的选定值
【发布时间】:2015-08-21 06:29:45
【问题描述】:

单击包含 ng-repeat 和由 ng-options 生成的选择的表单的提交按钮时,我试图获取选定的值。但是我无法达到选定的值,请您看看我的代码并告诉我我缺少什么吗?

<form class="form-horizontal">
<!-- Options -->
<div class="product-page-options">
    <div class="form-group clearfix" ng-repeat="option in product.options.data">
        <label class="col-md-4 control-label pull-left">{{ option.name }}</label>
        <div class="col-md-8">
            <select class="form-control" ng-options="value.name for value in option.values.data" ng-model="selectedValue">
                <option value="">Select {{ option.name }}</option>
            </select>
        </div>
    </div>
</div>

<!-- Add to cart -->
<div class="product-page-cart">
<div class="product-quantity">
  <input type="number" value="1" class="form-control input-sm">
</div>
<button class="btn btn-primary" type="submit" ng-click="add(selectedValue)">Add to cart</button>

我已尝试通过放置

来打印所选值
{{ selectedValue }}
在 ng-repeat div 内,它按预期完美显示,但是如果我尝试将它放在 div 之外,则不会打印任何内容。

我在这里用来构建表单的json数据http://pastebin.com/nah3Pt5r

// 编辑:

我刚刚用谷歌搜索,发现一个像我一样的小提琴:http://jsfiddle.net/DrQ77/ 所以我决定将 ng-model 修改为 selected[option.name] 但 $scope.selected 仍然显示未定义。

// 编辑 2: 好的,通过添加

解决了问题
$scope.selected = {};
在控制器中。

感谢您的宝贵时间!

【问题讨论】:

  • 这没有多大意义:您有许多选择框,并且您试图将它们全部绑定到唯一的范围变量selectedValue 并添加()这个唯一的选择值。选择的值与选择框的数量一样多。你真正想达到什么目标?
  • @JBNizet 我的错,我忘记了模型的独特性。谢谢!

标签: angularjs angularjs-ng-repeat angularjs-ng-options


【解决方案1】:

您的ng-options 有一个独立的范围。因此,selectedValue 内部是已知的,但外部却不是(正如您在问题中所述)。

在您的父作用域上定义一个变量并将其分配给您的 ng-model 或您的 ng-options,您应该能够在您的 ng-options 之外访问该变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多