Javascript 如何减少AngularJS调用中Firebase数据的HTML标题显示?
我有一个firebase数据库,其中包含有CourseID、部分等的课程。课程的每个条目可以有一个或多个部分。同一个courseID的不同部分可以有重复的课程(如下所示) 基本上,我希望通过组合类似的课程来减少在HTML中显示时的冗余,以避免重复标题(courseID) 当前: 我想要什么: HTMLJavascript 如何减少AngularJS调用中Firebase数据的HTML标题显示?,javascript,html,angularjs,firebase,firebase-realtime-database,Javascript,Html,Angularjs,Firebase,Firebase Realtime Database,我有一个firebase数据库,其中包含有CourseID、部分等的课程。课程的每个条目可以有一个或多个部分。同一个courseID的不同部分可以有重复的课程(如下所示) 基本上,我希望通过组合类似的课程来减少在HTML中显示时的冗余,以避免重复标题(courseID) 当前: 我想要什么: HTML <div class="panel panel-default" ng-repeat="course in courses | orderBy:'+courseID'">
<div class="panel panel-default" ng-repeat="course in courses | orderBy:'+courseID'">
...
<h3 class="panel-title">{{course.courseID}}</h3>
...
<table class="table table-condensed table-striped sections-table">
<tr>
<th>Section</th>
<th>Instructor</th>
<th>Start</th>
<th>End</th>
<th>Days</th>
<th>Grad TAs</th>
<th>Undergrad TAs</th>
<th>Undergrad LAs</th>
<th>Candidates</th>
</tr>
<tr ng-repeat="section in course.sections">
<td>{{section.sectionID}}</td>
<td>{{section.instructor}}</td>
<td>{{section.startTime}}</td>
<td>{{section.endTime}}</td>
<td>{{prettifyDays(section.days)}}</td>
<td>{{section.gradTAsNeeded}}</td>
<td>{{section.undergradTAsNeeded}}</td>
<td>{{section.undergradLAsNeeded}}</td>
<td ng-init="sec = section">
...
我无法链接到实际运行的站点,因为它包含机密的学生数据,因此如果还需要其他信息,请告诉我。您应该能够将课程中的
课程
和课程中的部分结合起来。控制器上的部分
组成一个键/值对--@obsidiange Hmm,我正试着思考如何让它起作用。我如何循环通过键/值对,而不每次重复标题?以后会引用每门课程,因此我需要能够继续引用每门课程的条目。我在这里想要的只是为了显示。您当前正在父DIV的ng repeat
中的courses
中循环。这还包括重复中的标题行。本质上,您正在寻找一种方法来组合控制器中课程
和部分
后面的“逻辑”,以便您可以在
上使用单个ng repeat
(您当前在课程中重复部分。部分
)。不幸的是,我不能确定您需要组合的确切逻辑,但它将使用map:.map(函数(值,索引){})
,当然,这就是解决这个问题的方法:)@obsidiange我可以创建一个用于显示的辅助数组,并在循环过程中将原始数组中的位置增加1,以供以后参考吗?也可以基于数值索引(i=0;i)进行循环
...
$scope.courses = [];
...
firebaseService.getCourses(function(courses) {
$scope.courses = courses;
console.log(courses);
$scope.$apply();
}, function(error) {
console.log(error);
});