我确信这个问题以前已经问过了,但是我看不到或找不到最好的解释,因此我想重新提出同样的问题并用一些例子打开线索以获得更清晰的答案。如何在Angular中调用ng-repeat中的另一个函数
我的目标是显示团队及其排名,注意:为显示排名,我有一个单独的函数,根据他们在db中的分数字段得到团队的排名。
我有一个TeamController如下内的两个功能:
tm.showAllByClass = function (classId) {
TeamService.showAllByClass(classId).then(function (response) {
tm.teamsInClass = response.data;
}).catch(function (error) {
$scope.result = error;
});
};
tm.ranking = function (classId, teamId) {
TeamService.ranking(classId, teamId).then(function (response) {
return response.data;
}).catch(function (error) {
$scope.result = error;
});
};
<tr ng-repeat="tm in team.teamsInClass.data">
<td>{{tm.group_number}}</td>
<td>{{tm.role.name}}</td>
<td>{{tm.ranking(tm.class_id, tm.id)}}</td>
<td>{{tm.amount | currency}}</td>
</tr>
而且这是在后端部分功能得到所有团队:
public function findAllTeamsInClass($classId)
{
return Team::where('class_id', '=', $classId)->with('role', 'business')->get();
}
// return rank of team
public function teamRanking($classId, $teamId){
return 3; // for sake of simplicity I just return a static value
}
有什么办法,我可以附上teamRanking功能直接把团队实体当作关系或者什么的?
出于某种原因,tm.ranking()没有返回任何东西,我怎样才能调用返回ng-repeat内的值的函数。
当然,在'ngRepeat'里面做一个'$ http' * request *是一个不好的习惯。另外我怀疑你没有收到像'无限摘要'或类似的错误.. – developer033
@ developer033,我完全同意你的观点,我没有选择这样做,你能告诉我什么是另一种方式吗?或者如何处理这种情况的最佳方式? – artan
我非常感谢你对此的帮助,因为这对我理解如何处理这个问题非常重要。如果你可以用一些例子来解释它,情况会更好。 – artan