我有以下代码片段
HTML
<div ng-controller="MyCtrl">
<div ng-if="quan!=true">
<select ng-model="selectedItems" ng-init="selectedItems = selectedItems + ''">
<option ng-repeat="value in arr | limitTo:quantity">{{value}}</option>
</select>
</div>
<div>
<a href="#" ng-click="submit()">Submit</a>
</div>
</div>
JS
$scope.arr = [];
$scope.quan=false;
for(var a=1; a<=10; a++) {
$scope.arr.push(a);
}
$scope.selectedItems = $scope.arr[0];
$scope.quantity = 10; //just hardcoded
在这里,当我单击提交按钮时,我没有得到我在下拉列表中选择的任何值。我对 selectedItems 进行了未定义。
并且还需要在选择框中选择第一个选项。
我想我错过了一些东西!
更改为 后$scope.selectedItems = $scope.arr[0];
,您需要初始化您的选项值,ng-init="selectedItems = selectedItems + ''"
因为 angular 使用严格比较。
看到这个工作小提琴。
您也不需要在点击事件中传递所选项目,submit(selectedItems)
. 因为它已经在控制器范围内。
此外,我建议更改您的选项结构以避免ng-init
.
就像是 :
options = [{
name: 'key1',
value: 'value1'
}, {
name: 'key2',
value: 'value2'
}];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句