Javascript 如何避免使用“多个”;ng repeat“;返回拆分数组时是否使用Angular?
我对创建具有特定功能的表单感兴趣。表单将有多个标准。当满足条件时,将显示相关价格。在这种情况下,用户可以选择天数集,然后选择时间集。我遇到了一个障碍,我可以按日期范围过滤时间,但这只返回一个数组(“['4:55pm-5:25',…]))。我需要拆分此数组并将其用于一组新的选项值。有关此问题的图像示例,请参见下文。此外,我正在尝试避免在另一个ng repeat中使用一个ng repeat,因为这不适用于所选表单类型。我尝试过使用另一个函数并使用ng repeat=“time in times.times”,但运气不佳 JS:Javascript 如何避免使用“多个”;ng repeat“;返回拆分数组时是否使用Angular?,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我对创建具有特定功能的表单感兴趣。表单将有多个标准。当满足条件时,将显示相关价格。在这种情况下,用户可以选择天数集,然后选择时间集。我遇到了一个障碍,我可以按日期范围过滤时间,但这只返回一个数组(“['4:55pm-5:25',…]))。我需要拆分此数组并将其用于一组新的选项值。有关此问题的图像示例,请参见下文。此外,我正在尝试避免在另一个ng repeat中使用一个ng repeat,因为这不适用于所选表单类型。我尝试过使用另一个函数并使用ng repeat=“time in times.ti
$scope.times=[
{'day':'星期一和星期三','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':'星期二和星期四','dates':['8/11-8/27'],'times':['4:55pm-5:25pm','5:40pm-6:10pm','6:20pm-6:50pm','price':'39'},
{'day':'星期二和星期四','dates':['9/1-9/29','10/1-10/29','times':['4:55-5:25','5:40-6:10','6:20-6:50'],'price':'59'],
{'day':'Saturday','dates':['9/12-11/21 10月31日无课],'times':['11:00am-11:30am','11:35am-12:00pm','price':'65']
];
$scope.concat=函数()
{
var concat=[];
var fullDates=[]
对于(var z=0;z我发现,您还可以通过传入一个具有索引属性值的对象,将键添加到正在创建的新对象中(使用concat函数)。这样,您就不必担心重写JSON数据。然后,您可以使用此新索引和日期来选择特定对象
HTML:
{{days.day}
选择一个时间:
{{time}}
JS:
$scope.concat=function()
{
var concat=[];
var fullDates=[]
对于(var z=0;z“不适用于所选表单类型”是什么意思?对于您应该使用的
标记中的选项。@muenchdo我使用了ng选项,但这无助于我进一步了解。我将其设置为ng options=“time.times as time.times for time in times”“这不允许我遍历对象数组中的每个数组。
$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;
};
<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>
<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>
$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;
};
});