【发布时间】: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