我確信這個問題以前已經問過了,但是我看不到或找不到最好的解釋,因此我想重新提出同樣的問題並用一些例子打開線索以獲得更清晰的答案。如何在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