我感兴趣的是创建一个具有特定功能的表单。该表单将具有多个条件。当满足条件时,将显示关联的价格。在这种情况下,用户可以选择天数集,然后选择时间集。我遇到了一个障碍,因为我可以按日期范围过滤时间,但这只返回一个数组(“‘4:55 am 5:25’,..)。我需要拆分这个数组,并将其用于一组新的选项值。请参见下面的图像示例。此外,我试图避免在另一个ng-repeat中使用一个ng-repeat,因为这不适用于select表单类型。我尝试使用另一个函数并使用ng-repeat="time in times.times”,但没有任何幸运。
JS:
$scope.times = [
{'day': 'Monday & Wednesday', 'dates': ['8/10-8/31', '9/2 - 9/30', '10/5- 10-28'], 'times': ['4:55pm - 5:25pm', '5:40pm - 6:10pm', '6:20pm - 6:50pm'], 'price': '46'},
{'day': 'Tuesday & Thursday', 'dates': ['8/11-8/27'], 'times':['4:55pm - 5:25pm', '5:40pm - 6:10pm', '6:20pm - 6:50pm'], 'price': '39'},
{'day': 'Tuesday & Thursday', 'dates': ['9/1-9/29', '10/1-10/29'], 'times':['4:55pm - 5:25pm', '5:40pm - 6:10pm', '6:20pm - 6:50pm'], 'price': '59'},
{'day': 'Saturday', 'dates': ['9/12 - 11/21 No Class Oct 31'], 'times':['11:00am - 11:30am', '11:35am-12:00pm'], 'price': '65'}
];
$scope.concat = function()
{
var concat = [];
var fullDates = []
for (var z = 0; z<= top.length - 1; z ++)
{
var dates = top[z].dates;
var day = top[z].day;
//return dates;
for(var i = 0; i<=dates.length - 1; i++)
{
//concat.push(day.dates[i]);
concat.push(day + ' ' + dates[i]);
fullDates.push(dates[i])
}
$scope.fullDates = fullDates;
}
return concat;
};
HTML:
<select name="days" id="#preschool" ng-model="selectedgroup">
<option ng-repeat="days in concat() track by $index" value="{{fullDates[$index]}}">
{{days}}
</option>
</select>
Select A Time:
<select name="times" id="times" ng-model="selectedTime">
<option ng-repeat="time in times| filter: {dates: selectedgroup}" value="{{$index}}">
{{time.times}}
</option>
</select>
发布于 2015-09-24 22:40:09
我发现,您还可以通过传入一个带有索引属性值的对象,将键添加到您正在创建的新对象中(使用concat函数)。这样,您就不必担心重写JSON数据。然后,您可以使用这个带有日期的新索引来选择特定对象。
HTML:
<select name="days" id="#preschool" ng-model="selectedgroup">
<option ng-repeat="days in concat() track by $index" value="{{days.index}}">
{{days.day}}
</option>
</select>
Select A Time:
<select name="times2">
<option value="" ng-repeat="time in times[selectedgroup].times">
{{time}}
</option>
JS:
$scope.concat = function()
{
var concat = [];
var fullDates = []
for (var z = 0; z<= top.length - 1; z ++)
{
var dates = top[z].dates;
var day = top[z].day;
//return dates;
for(var i = 0; i<=dates.length - 1; i++)
{
concat.push({'day': day + ' ' + dates[i] , 'index':z});
}
}
return concat;
};
});
https://stackoverflow.com/questions/32746031
复制相似问题