这是参考随附的jsfiddle。 http://jsfiddle.net/n1cf938h/
如小提琴所示,ng-repeat会生成一个日期列表。我想知道哪个下拉选择用户已选择。在这种情况下如何使用ng-model?
HTML -
<div ng-app ng-controller="Ctrl">
<select>
<option ng-repeat="date in dates">{{date | date:'MM-dd-yyyy'}}</option>
</select>
</div>
JS代码
function Ctrl($scope) {
$scope.baseAdd = 0;
$scope.dates = [0,1,2,3,4,5,6].map(function(day) {
dateobj = new Date(new Date().getTime() + (1000 * 60 * 60 * 24 * (day + $scope.baseAdd)));
while(dateobj.getDay() == 6 || dateobj.getDay() == 0) {
$scope.baseAdd++
dateobj = new Date(new Date().getTime() + (1000 * 60 * 60 * 24 * (day + $scope.baseAdd)));
}
return dateobj;
});
console.log($scope.dates)
}
答案 0 :(得分:2)
您可能希望使用ngOptions,因为它会为您实现此目的。以下是使用ngModel和ngOptions
的示例每当下拉列表发生变化时,$scope.selectedDate
将保留新值
<div ng-app ng-controller="Ctrl">
<select ng-options="date as date | date:'MM-dd-yyyy' for date in dates" ng-model="selectedDate"></select>
</div>
答案 1 :(得分:1)
您可以使用ng-model
和value
获取选择框的值,如下所示:
<select ng-model="date">
<option value="1-1">1-1</option>
<option value="1-2">1-2</option>
</select>
在您的情况下,这也有效:
<select ng-model="date">
<option ng-repeat="date in dates">{{date | date:'MM-dd-yyyy'}}</option>
</select>
答案 2 :(得分:1)
您应该在ng-model="someVar"
标记上添加<select>
作为属性。
然后您可以在控制器中将其用作$scope.someVar
。